第2章_线性表答题.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 带表头附加结点的单链表的算法: void Contrary(LNode* H) { LNode *q,* p=H-next; H-next=NULL; while (p!=NULL) { q=p; p=p-next; q-next=H-next; H-next=q; } } 7.循环链表 循环链表最后一个结点的指针域不为NULL,而是指向了表的最前端。 循环链表的特点是:只要知道表中某一结点的地址,就可搜寻到所有其他结点的地址。 2.5 线性表操作在单链表上的实现 假定表头指针HL,结点类型为LNode,无表头附加结点。 1.初始化单链表 void InitList(LNode* HL) { HL=NULL; } an ^ a1 HL 2.删除单链表中的所有结点,使之成为一个空表 void ClearList(LNode* HL) { LNode *cp, *np; // current pointer //next pointer cp=HL; while (cp!=NULL) { np=cp-next; delete cp; cp=np; } HL=NULL; } ^ an a1 HL a2 cp np ^ an HL a2 cp np 3. 得到单链表的长度 int LenthList(LNode* HL) { int i=0; while (HL!=NULL) { i++; HL=HL-next; } return i; } 0 an a1 HL a2 4. 检查单链表是否为空 bool EmptyList (LNode* HL) { return HL==NULL; } 5.得到单链表中第pos个结点中的元素 ElemType GetList(LNode* HL, int pos) { if (pos1) { cerr“pos is out ramge!”endl; exit(1); } int i=0; while (HL!=NULL) { i++; //计数 if( i==pos) break; HL=HL-next; } if (HL!=NULL) return HL-data; else { cerr“pos is out range!”endl; exit(1); } } 6. 遍历一个单链表 void TraverseList(LNode* HL) { while (HL!=NULL) { coutHL-data“ ”; HL=HL-next; } coutendl; } 7. 从单链表中找出等于给定值的第1个元素 bool FindList(LNode* HL, ElemType item) { while (HL!=NULL) if(HL-data==item) {

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档