网站大量收购独家精品文档,联系QQ:2885784924

数据结构建--线性表.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构建--线性表

2. 3. 1 线性链表 插入操作主要步骤: 1)查找链表L的第 i-1个元素结点; 2)为新元素建立结点; 3)修改第 i-1个元素结点的指针和新元素结点指针完成插入; 插入操作演示 用鼠标单击 图中的绿字 2. 3. 1 线性链表 插入操作算法: Status ListInsert_L(LinkList L, int i, ElemType e){ //在带头结点的线性链表L中第I元素结点之前插入元素e p=L; j=0 while (pji-1){p=p-next; ++j;}//寻找第i-1个元素结点 if(!p||j.j-1)return ERROR; // i小于1或者大于表长 s=(LinkList)malloc(sizeof(LNode));// 分配新结点 s-data=e; s-next=p-next; p-next=s; //插入新结点 return OK; }//LinstInsert_L 算法 2.9 4 删除操作 ListDelete_L(LinkList L, int i, ElemType e) 功能:在线性链表L中删除第i个元素,并且用e 返回其值 删除操作图示: 2. 3. 1 线性链表 删除前 删除后 ai-1 ai a2 a1 ai+1 n an L ai-1 ai a2 a1 ai+1 n an L 2. 3. 1 线性链表 删除操作主要步骤: 1)查找链表的第 i-1个元素结点; 2)修改第 i-1个元素结点指针,删除第i个元素结点; 3) 将第i个元素结点中的数据元素赋值给e; 4)回收被删除结点空间; 删除操作演示 用鼠标单击 图中的绿字 2. 3. 1 线性链表 删除操作算法: Status ListDelete_L(LinkList L, int i, ElemType e){ //在带头结点的单链线性表L中,删除第i个元素,并由e返回其值 p=L; j=0; while (p-nextji-1){ //寻找第i个结点,并令p指向其前趋 p=p-next; ++j; } if(!p-next)||ji-1)return ERROR; // 表中无第i个结点(i不合法) q=p-next;p-next=q-next; //删除结点 e =q-data; free(q); // 回收(释放)结点空间 return OK; }//LinstDelete_L 算法: 2.10 第二章 习题 习题四 P13 2.1, 2.2, 2.3, 2.14, 2.17 2.3.1 线性链表? 四、线性链表的其他操作 例:将两个有序线性链表归并成一个有序表。 设线性表A、B分别用头指针为La 、 Lb 的两个带头结点的线性链表存储,且两线性链表中元素按非递减顺序排列,编写算法,将La 、 Lb归并得到线性链表Lc, Lc中的元素也按值非递减顺序排列。(注意:线性链表Lc中的结点利用原La,Lb的结点) 实现上述功能的算法有很多,我们采用第三种。 1)将Lb并入La; 2)将La并入Lb; 3)将La,Lb并入Lc; 基本思想:设两个指针pa,pb分别对La,Lb进行扫描,在扫描过程中按 pa,pb所指结点的大小,将其插入到Lc的表尾。 算法演示 La Lb pa pb pc Lc 2 2 3 4 3 3 1 ^ ^ 2.3.1 线性链表 线性链表归并操作算法(直接对链表进行操作) void MergeList_L(LinkList La, LinkList Lb, LinkList Lc) { //已知单链线性表La和Lb的元素按值非递减排列 //归并La和Lb得到新的单链线性表Lc,Lc的元素也按值非递减排列。 pa=La-next; pb=Lb-next; Lc=pc=La; //用La的头结点作为Lc的头结点 while(pa pb){ If (pa-data=pb-data) {pc-next=pa;pc=pa;pa=pa-next;}

文档评论(0)

186****0772 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档