数据结构:第二章总结
来源:互联网 发布:管理客户软件 编辑:程序博客网 时间:2024/05/11 04:18
线性表是由n≥0个数据元素组成的有限序列。
我们学习了线性表上定义的基本运算: 有构造空表:Initlist(L),求表长:Listlength(L),取结点:GetNode(L,i) ,查找:LocateNode(L,x),插入:InsertList(L,x,i),删除:Delete(L,i)。
还学习了顺序表、单链表以及双链表的各种插入、删除、查找、取结点等运算操作。其中顺序表是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和逻辑结构中各结点相邻关系是一致的。单链表:建立单链表头插法:s->next=head;head=s;平均时间复杂度均为O(n)。 尾插法:head=rear=null;if(head=null)head=s;else r->next=s;r=s; 平均时间复杂度均为O(n)。 插入运算p=GetNode(L,i-1);s->next=p->next;p->next=s;平均时间复杂度均为O(n)删除运算:p=GetNode(L,i-1);r=p->next;p->next=r->next;free(r);平均时间复杂度均为O(n)。双链表:在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,形成两条不同方向的链。由头指针head惟一确定。双链表也可以头尾相链接构成双(向)循环链表。双链表上的插入和删除时间复杂度均为O(1)。
在学习顺序表和链表时,难免会容易混淆一些概念问题,然而用比较方法却很有效, 顺序表和链表的比较:基于空间,顺序表的存储空间是静态分配,存储密度为1;适于线性表事先确定其大小时采用。链表的存储空间是动态分配,存储密度<1;适于线性表长度变化大时采用。基于时间,顺序表是随机存储结构,当线性表的操作主要是查找时,宜采用。以插入和删除操作为主的线性表宜采用链表做存储结构。若插入和删除主要发生在表的首尾两端,则宜采用尾指针表示的单循环链表。
- 数据结构第二章总结
- 数据结构:第二章总结
- <<数据结构第二章>>总结
- 数据结构第二章总结
- 《数据结构》第二章知识总结导图
- 数据结构第一章第二章个人心得总结
- 《数据结构》第二章线性表学习总结
- 数据结构 第二章学习总结与感受
- 数据结构第二章线性表总结
- java数据结构与算法--第二章总结
- 《数据结构》第二章 线性表 知识总结导图
- C++版数据结构第二章线性表总结
- 【数据结构】第二章 线性表 学后总结与心得
- 数据结构 第二章 线性表 总结(待补充)
- 【数据结构与算法分析】第一章、第二章总结
- R语言实战总结 --第二章 数据类型及数据结构
- 数据结构第二章 算法
- 数据结构第二章理解
- 经济学的思维方式-1 没有免费的午餐
- 兼容性问题
- link和@import的区别
- 设置button的监;
- struts+spring+hibernate 框架搭建
- 数据结构:第二章总结
- swift启航
- 百元买百鸡
- SQL server添加主外键约束 sql语句
- Ruby更改gem source
- MySQL的五种日期和时间类型
- shiro安全框架扩展教程--验证码的安全(jcaptcha框架)
- POJ2663——Tri Tiling
- 数据结构——队列之顺序队列