第2章线性表算法总结.ppt
《第2章线性表算法总结.ppt》由会员分享,可在线阅读,更多相关《第2章线性表算法总结.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例例一一:简述线性表的两种存储结构的主要优缺点及各自适用的场合。【解答】顺序存储可以按位置直接存取数据元素,方便灵活,效率高,但插入、删除操作是将引起元素移动,降低了效率;链式存储元素存储采用动态分配,利用率高,但需增设表示结点之间有序关系的指针域,存取数据元素不如顺序存储方便,但结点的插入、删除操作十分简单。顺序存储适用于线性表中元素数量基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素的情况;而链式存储适用于频繁进行元素的动态 插入或删除操作的场合。【分析】线性表的两种主要存储结构各有其优点和缺点,不能简单地说哪个好哪个差,要根据实际问题和其适用的场合使用。1.顺序存储结
2、构例二例二:删除有序表中相同的数据元素:删除有序表中相同的数据元素void Delete_Equale(SqList La)i=0;j=1;while(jnext;p=pre-next;while(p!=NULL)if (pre-data!=p-data)pre=p;p=p-next;else u=p;p=p-next;pre-next=p;free(u);1.顺序存储结构例三例三:线性表的就地逆置:线性表的就地逆置void reverse(SqList LA)/使用两个控制变量使用两个控制变量 ElemType t;for(i=0,j=LA.length-1;ij;i+,j-)t=LA.el
3、emi;LA.elemi=LA.elemj;LA.elemj=t;void reverse(SqList&LA)/使用一个控制变量使用一个控制变量 ElemType t;n=LA.length;for(i=0;inext;L-next=NULL;while(p)succ=p-next;/succ指向*p的后继 p-next=L-next;L-next=p;/*p插入在头结点之后 p=succ;void inverse(LinkList L)p=L-next;pre=NULL;while(p)succ=p-next;/succ指向*p的后继 p-next=pre;pre=p;p=succ;L-n
4、ext=pre;思考:不带头结点单链表思考:不带头结点单链表逆置?带头结点单循环链逆置?带头结点单循环链表逆置表逆置思路二思路二:直接修改结点的指针域直接修改结点的指针域,指向原来指向原来链表上其直接前驱结点链表上其直接前驱结点有序顺序表的合并 教材p26 另void union(SqList LA,SqList LB,SqList LC)i=0;j=0;k=0;while(iLA.length&j LB.length)if(LA.elemi=LB.elemj)LC.elemk+=LA.elemi+;else LC.elemk+=LB.elemj+;while(i LA.length)LC.e
5、lemk+=LA.elemi+;while(j=0&j=0)if(LA.elemi=LB.elemj)LA.elem-k=LA.elemi-;else LA.elem-k=LB.elemj-;while(j=0)LA.elem-k=LB.elemj-;2.链式存储结构(1)例四例四:线性表的合并:线性表的合并void MergeList_L(LinkList&La,LinkList&Lb,LinkList&Lc)/将两个非递减有序链表合并为一个将两个非递减有序链表合并为一个非递减非递减有序链表,有序链表,利用原表空间,带头结点利用原表空间,带头结点 pa=La-next;pb=Lb-next;
6、Lc=pc=La;while(pa&pb)if(pa-datadata)pc-next=pa;pc=pa;pa=pa-next;else pc-next=pb;pc=pb;pb=pb-next;pc-next=pa?pa:pb;free(Lb);/MergeList_L利用归并思想利用归并思想,该算该算法去掉法去掉if/else即可表即可表示题集示题集2.23交叉合并交叉合并两线性表两线性表;该题结合该题结合逆置思想即可表示逆置思想即可表示2.24(合并为一个合并为一个非非递增递增有序链表有序链表)2.链式存储结构(2)例四例四:线性表的合并:线性表的合并void MergeList_L(Li
7、nkList&La,LinkList&Lb)/将两个非递减有序链表合并为一个将两个非递减有序链表合并为一个非递增非递增有序链表,利用原表有序链表,利用原表空间,带头结点空间,带头结点 pa=La-next;pb=Lb-next;La-next=NULL;while(pa&pb)if(pa-datadata)r=pa-next;pa-next=La-next;La-next=pa;pa=r;else r=pb-next;pb-next=La-next;La-next=pb;pb=r;while(pa)r=pa-next;pa-next=La-next;La-next=pa;pa=r;while(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 算法 总结
限制150内