数据结构——线性表.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3.6 单链表应用3 算法2-24 一元多项式相加 96 main() 97 { 98 Polyn *ha,*hb; /* 定义一元多项式ha和hb */ 99 int m,n; 100 printf(input ha:); 101 ha=CreatePolyn(); /* 建立多项式ha */ 102 printf(input hb:); 103 hb=CreatePolyn(); /* 建立多项式hb */ 104 printf(\nOutput ha:); PrintPolyn(ha); /* 输出多项式ha */ 105 printf(\nOutput hb:); PrintPolyn(hb); /* 输出多项式hb */ 106 ha=AddPolyn(ha,hb); /* ha与hb相加,结果返回ha */ 107 printf(“\nOutput ha+hb:”); PrintPolyn(ha); /* 输出相加结果 */ 108 } 2.4线性表存储结构比较 1.空间性能比较 2.时间性能比较 结论: (1)若要求经常按位存取,很少插入删除,或者线性表元素位置基本不变时,可采用顺序存储结构;而常做插入删除操作的,可采用链式存储结构。 (2)若线性表中元素个数可预测,则采用顺序存储结构有更高的存储密度;如个数常变或变化较大,为避免冗余或溢出,可采用链式存储结构更加灵活。 本章小结 本章基本内容 练习: 查找链表中值为x的元素,返回其地址或空。 上机: 键盘输入n,然后建立一个长度为n的单链表,最后输出此单链表; 输入数字k,在单链表中查找k并输出查找结果。 2.3.3 循环链表 首尾相连 2.3.3 循环链表2 例2-2:现有循环单链表head,输出链表中的所有元素。 算法2-13 输出循环单链表 1 void Display(NODE *head) 2 {NODE *p; 3 printf(\nThe line are:); 4 p=head-next; 5 while(p!=head) /* 判断p是否已到链表头结点 */ 6 {printf(%d ,p-data); 7 p=p-next; 8 } 9 } 2.3.3 循环链表3 例:合并 图2-15(a) headA和headB合并前 图2-15(b) headA和headB合并后 2.3.3 循环链表4 算法2-16带头结点的循环单链表的合并 00 NODE *merge1(NODE *headA, NODE *headB) 01 { 02 NODE *p,*q; 03 p=headA-next; 04 while(p-next!=headA) p=p-next; /* 找到表headA的表尾p */ 05 q=headB-next; 06 while(q-next!=headB) q=q-next; /* 找到表headB的表尾q */ 07 q-next=headA; /* 修改q的指针域指向headA的头结点 */ 08 p-next=headB-next; /* 修改p的指针域指向headB的表头结点 */ 09 q-next=headA; /* q的指针域指向headA头结点 */ 10 free(headB); /* 释放headB的头结点 */ 11 return(headA); 12 } 2.3.3 循环链表5 算法2-17带尾指针的循环单链表的合并 00 NODE *merge2(NODE *rearA, NODE *rearB) 01 { 02 NODE *p; 03 p=rearA-next; /* 找到表rearA的头结点p */ 04 rearB-next=p; /* 修改rearB的指针域指向rearA的头结点 */ 05 rearA-next=rearB-next-next; /* 修改rearA的指针域指向rearB的表头结点 */ 06 free(rearB-next); /* 释放rearB的头结点 */ 07 return(r

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档