常用的数据结构线性表有线性表和哪三个?

1、顺序存储结构(如数组)

读取其中某个元素:假设线性顺序表已存在读取其中第i个元素,其值返回到e中

插入操作:在第i个元素前面插入元素e

删除操作:删除第i个元素並返回其值e

总结特点:查询元素方便(时间复杂度O(1))插入和删除元素复杂(时间复杂度O(n))

2、链式存储结构(链表)

链表读取:讀取第i个数,其值返回e中

链表的插入:在第i个元素前面插入元素e

链表的删除:删除第i个元素返回其值到e中

free(q); //系统回收此节点,释放内存

总結链表的特点可以看到每次读取一个数的时候,都要从表头一直读下去复杂度为O(n),但是插入和删除时找到特定位置后,再执行嘚时间复杂度为O(1)

把单链表的终端节点指针域指向头结点就形成了循环链表,可方便进行链表全部结点的遍历判断的方法就是看p->next是否为头结点来结束循环

和单向链表区别仅在于多了一个prior指针指向前面的结点,因此插入和删除操作也就多了几个关于prior的步骤

思路是每次翻轉链表把原始链表的第一个元素后面的那个元素放到表头

Node *behind = NULL; //每次新生成链表时,指向原始链表最开始的第一个数据的下一个数据

哪位大佬知道数据结构线性表(C語言版)的创建、插入线性表的运行程序和算法呀

线性表是最基本、最简单、也是朂常用的一种线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外其它数据元素都是首尾相接的。線性表的逻辑结构简单便于实现和操作。因此线性表这种数据结构线性表在实际应用中是广泛采用的一种数据结构线性表。

 线性结構的基本特征为:  1.集合中必存在唯一的一个“第一元素”;  2.集合中必存在唯一的一个 “最后元素” ;  3.除最后一个元素之外均有 唯一的后继(后件);  4.除第一个元素之外,均有 唯一的前驱(前件)  由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。  数据元素嘚个数n定义为表的长度  当n=0时称为空表。  常常将非空的线性表(n>0)记作:  (a1a2,…an)   数据元素ai(1≦i≦n)只是一个抽象的符号其具体含义在不同的情况下可以不同。  线性表的基本操作  1)MakeEmpty(L) 这是一个将L变为空表的方法  2)Length(L) 返回表L的长度即表中元素个数  3)Get(L,i) 这是一个函数函数值为L中位置i处的元素(1≤i≤n)  4)Prev(L,i) 取i的前趋元素  5)Next(Li) 取i的后继元素  6)Locate(L,x) 这是一个函数函数值为元素x在L中的位置  7)Insert(L,ix)在表L的位置i处插入元素x,将原占据位置i的元素及后面的元素都向后推一个位置  8)Delete(Lp) 从表L中删除位置p处的元素  9)IsEmpty(L) 如果表L为空表(长度为0)则返回true,否则返回false  10)Clear(L)清除所有元素  11)Init(L)同第一个初始化线性表为涳  12)Traverse(L)遍历输出所有元素  13)Find(L,x)查找并返回元素  14)Update(Lx)修改元素  15)Sort(L)对所有元素重新按给定的条件排序



我要回帖

更多关于 数据结构线性表 的文章

 

随机推荐