数据结构:第二章总结

来源:互联网 发布:管理客户软件 编辑:程序博客网 时间:2024/05/11 04:18
      

                     线性表是由n0个数据元素组成的有限序列

         我们学习了线性表上定义的基本运算:  有构造空表:InitlistL),求表长:ListlengthL,取结点:GetNodeLi) ,查找:LocateNodeLx),插入:InsertListLxi,删除:DeleteLi)。    

        还学习了顺序表、单链表以及双链表的各种插入、删除、查找、取结点等运算操作。其中顺序表是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和逻辑结构中各结点相邻关系是一致的。单链表:建立单链表头插法:s->next=headhead=s;平均时间复杂度均为On)。 尾插法:head=rear=nullifhead=nullhead=selse r->next=sr=s; 平均时间复杂度均为On。 插入运算p=GetNodeLi-1);s->next=p->nextp->next=s;平均时间复杂度均为On)删除运算:p=GetNodeLi-1);r=p->nextp->next=r->nextfreer);平均时间复杂度均为On)。双链表:在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,形成两条不同方向的链。由头指针head惟一确定。双链表也可以头尾相链接构成双(向)循环链表。双链表上的插入和删除时间复杂度均为O1)。  

        在学习顺序表和链表时,难免会容易混淆一些概念问题,然而用比较方法却很有效, 顺序表和链表的比较:基于空间,顺序表的存储空间是静态分配,存储密度为1;适于线性表事先确定其大小时采用。链表的存储空间是动态分配,存储密度<1;适于线性表长度变化大时采用。基于时间,顺序表是随机存储结构,当线性表的操作主要是查找时,宜采用。以插入和删除操作为主的线性表宜采用链表做存储结构。若插入和删除主要发生在表的首尾两端,则宜采用尾指针表示的单循环链表。

0 0
原创粉丝点击