当前位置:首页 » 服务存储 » 顺序表存储复数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

顺序表存储复数

发布时间: 2022-05-30 15:28:38

⑴ 顺序表与线性表有什么不同

1、概念不一样

顺序表:顺序表是逻辑概念

线性表:线性表是空间概念

2、特点不一样

线性表:

(1)集合中必存在唯一的一个“第一元素”。

(2)集合中必存在唯一的一个 “最后元素” 。

(3)除最后一个元素之外,均有唯一的后继(后件)。

(4)除第一个元素之外,均有唯一的前驱(前件)。

顺序表:

只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L 1≤i≤n 其中,L是元素占用存储单元的长度。

(1)顺序表存储复数扩展阅读:

存储结构

线性表主要由顺序表示或链式表示。在实际应用中,常以栈、队列、字符串等特殊形式使用。

顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,称为线性表的顺序存储结构或顺序映像(sequential mapping)。它以“物理位置相邻”来表示线性表中数据元素间的逻辑关系,可随机存取表中任一元素。

链式表示指的是用一组任意的存储单元存储线性表中的数据元素,称为线性表的链式存储结构。它的存储单元可以是连续的,也可以是不连续的。

在表示数据元素之间的逻辑关系时,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素的存储映像,称为结点(node)。

它包括两个域;存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称为指针或链 。

结构特点

1、均匀性:虽然不同数据表的数据元素可以是各种各样的,但对于同一线性表的各数据元素必定具有相同的数据类型和长度。

2、有序性:各数据元素在线性表中的位置只取决于它们的序号,数据元素之前的相对位置是线性的,即存在唯一的“第一个“和“最后一个”的数据元素,除了第一个和最后一个外,其它元素前面均只有一个数据元素(直接前驱)和后面均只有一个数据元素(直接后继)。

线性表的推广

时间有序表、排序表、和频率有序表都可以看做是线性表的推广。如果按照结点到达结构的时间先后,作为确定结点之间关系的,这样一种线性结构称之为时间有序表。

例如,在红灯前停下的一长串汽车,最先到达的为首结点,最后到达的为尾结点;在离开时最先到达的汽车将最先离开,最后到达的将最后离开。

这些汽车构成理一个队列,实际上就是一个时间有序表。栈和队列都是时间有序表。频率有序表是按照结点的使用频率确定它们之间的相互关系的,而排序表是根据结点的关键字值来加以确定的。

⑵ 如何用c顺序表存储字符串

那就是二位数组,每一行表示一个字符串char s[5][10];表示s是可以存放5行容量为10个字符的字符串的二维数组 gets(s[i]);即可

⑶ 线性结构可用顺序表或链表储存。试问:两种存储表示各有哪些主要优缺点

顺序表),就是指的在物理上是连续存放的,比如第一个在地址0X00000001,第一个数据在0X00000002,数组就是这样的,从第一个地址开始到最后都是这么一个挨着一个存放的。链表就不同了,链表是彼此位于不连续位置(当然也可能连续)的数据块用指针(就是指向下一个数据的地址)从逻辑上联系起来的,比如第一个在0X00000001,第2个在0X00000008,为了让这些数据可以连续的去访问,必须得保存逻辑上下一个数据的位置,比如第一个数据必须得保存第个数据的位置0X00000008,才知道如何去访问下一个,依次类推

⑷ 顺序表——数据结构

#include <stdio.h>
#include <string.h>

#define N 5

typedef struct {
int id;
char name[10];
int gender;
int score;
} student;

student students[N];
int size = 0;

int read_int(char *prompt) {
int n;
printf("input the %s: \n", prompt);
scanf("%d", &n);
return n;
}

void read_string(char *prompt, char *content) {
printf("input the %s: \n", prompt);
scanf("%s", content);
}

void read(student *s) {
s->id = read_int("id number");
read_string("name", s->name);
s->gender = read_int("gender, 0 for male, 1 for female");
s->score = read_int("score");
}

student * find_by_name(char *name) {
int i;
for (i = 0; i != size; ++i)
if (strcmp(students[i].name, name) == 0)
return students + i;
return 0;
}

void print(student *s) {
printf("ID: %d\tName: %s\tGender: %s\tScore: %d\n",
s->id, s->name,
s->gender == 0 ? "Male" : "Female",
s->score);
}

void insert() {
int i;
for (i = 0; i != N; ++i) {
printf("input information for student%d: \n", i+1);
read(students + i);
++size;
}
}

void delete() {
char name[10];
read_string("the name of the student to delete", name);
student *s = find_by_name(name);

if (s) {
for (++s; s != students + size; ++s) {
*(s-1) = *s;
}
--size;
}
}

void output() {
int i;
printf("All the students: \n");
for (i = 0; i != size; ++i) {
print(students + i);
}
}

int main() {
insert();
output();

while (read_int("choice, 0 to exit, others to delete")) {
delete();
output();
}

return 0;
}

⑸ 简答线性表可用顺序表或者链表存储,此两种存储表示各有哪些优缺点

定义
顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素。由于表中各个元素具有相同的属性,所以占用的存储空间相同。
线性表按链式存储时,每个数据元素
(结点)的存储包括数据区和指针区两个部分。数据区存放结点本身的数据,指针区存放其后继元素的地址只要知道该线性表的起始地址表中的各个元素就可通过其间的链接关系逐步找到
优缺点
顺序存储需要开辟一个定长的空间,读写速度快,缺点不可扩充容量(如果要扩充需要开辟一个新的足够大的空间把原来的数据重写进去)
链式存储无需担心容量问题,读写速度相对慢些,由于要存储下一个数据的地址所以需要的存储空间比顺序存储大。

⑹ 请用C语言给出顺序表(线性表的顺序结构存储结构)的类型定义

这很简单的问题啊...
#define MaxSize 100
typedef char ElemType
typedef struct
{
ElemType data[MaxSize]; //存放顺序表元素
int length; //存放顺序表的长度
}; //顺序表的类型定义

⑺ 建立顺序表存储数据序列(10,20,30,40,50,60,70,80,90,100)要求输出顺序

#include<stdio.h>
int main()
{int i,a[10]={10,20,30,40,50,60,70,80,90,100};
for(i=0;i<10;i++)
pritf("%d ",a[i]);
return 0;
}

⑻ 简述顺序表和链表存储方式的特点。

顺序表存储数据实行的是 一次开辟,永久使用,即存储数据之前先开辟好足够的存储空间,空间一旦开辟后期无法改变大小(使用动态数组的情况除外)。而链表则不同,链表存储数据时一次只开辟存储一个节点的物理空间,如果后期需要还可以再申请。

因此若只从开辟空间方式的角度去考虑,当存储数据的个数无法提前确定,又或是物理空间使用紧张以致无法一次性申请到足够大小的空间时,使用链表更有助于问题的解决。

(8)顺序表存储复数扩展阅读:

注意事项:

头指针不可丢失,注意保持更新。

free指针必须确认,否则可能难以查错,避免链表成环状,通过打印限制以及单双步法检查链表环。

头结点使用前要用为之动态分配存储空间,而头指针可以直接使用。

带头结点的链表,空表的判定条件是head->next=NULL,而之带头制作的空表的判定条件是head=NULL。

⑼ 为什么顺序表的存储密度为1(关于数据结构)

因为顺序存储是以空间位置来表示逻辑关系,所以不需要另外的空间存放数据元素的逻辑关系
这样自然存储密度为100%了