C++线性表.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C线性表

复习数组的特点: 2用指针处理链表 ① 链表中每个元素称为一个结点。 ② 构成链表的结点必须是结构体类型数据。 表头指针 表头指针(head) 结点用结构体类型来描述 结点由数据成员和指针成员组成。 数据成员描述每一个结点的信息; 指针成员用来指向链表中的下一个结点。 链表的建立 链表的建立过程就是一个个创建链表结点并将它们连接在一起的过程。 链表的建立 ☆创建结点 StuNode﹡p; p=new StuNode; 链表的建立 初始情况: 链表的建立 示意图如下: 链表为空 链表非空 StuNode *head=NULL; StuNode *tail=NULL; StuNode﹡p; p=new StuNode; strcpy(p-name, ”wt ”); p-score=67; p-next=NULL; head=p; tail=p; p=new StuNode; strcpy(p-name, ”ee”); p-score=78; p-next=NULL; tail-next=p; tail=p; 输出建立好的链表 StuNode *pNode=head; coutpNode-name“ ”pNode-score; pNode=pNode-next; 链表结点的删除 ☆如果被删除结点是链表的第一个结点,那么删除这个结点后,链表的头指针需要发生变化; ☆如果被删除结点不是链表的第一个结点,那么删除这个结点后,将导致这个结点的前一个结点的指针发生变化. 链表结点的删除 第一种情况示意图: 链表结点的删除 第二种情况示意图: 查找到要删除元素的前一个元素 pre=head; while( pre-next!=pDel) pre=pre-next; 链表结点的删除 将两种情况结合,则从一个以head为表头指针的链表中删除一个结点的程序如下: if(head==pDel) head=head-next; else {pre=head; while( pre-next!=pDel) pre=pre-next; pre-next=pDel-next;} delete pDel; 综合练习(大作业) struct node { int elem; node *next; }; 用类完成 建立链表 在表尾插入一个元素(显示链表) 求链表的长度 显示链表 * * 链表 赵红 程序设计基础 x[0] x[1] x[2] x[3] x[4] x[5] 2000H 2004H 2008H 200cH 2010H 2014H 地址 值 数组元素 12 34 5 6 7 0 34 5 6 7 0 0 12 34 5 6 7 0 1. 链表的基本结构 head 1000 1032 3284 1296 1382 2008 图 1 动态单向链表示意图 C 3284 H 1296 A 1382 I 2008 N NULL 1000 1032 ③ 相邻结点的地址不一定是连续的,依靠指针将 它们连接起来。 struct node {char c; node *next; }; 1010 1012 1014 1016 1018 1020 1022 1024 1026 李 NULL 孙 1010 赵 1024 钱 1014 例:(赵,钱,孙,李)的链式存储结构如下: 1018 1010 1014 1024 1018 赵 1024 钱 1014 孙 1010 李 NULL head 1000 1032 3284 1296 1382 2008 图 1 动态单向链表示意图 C 3284 H 1296 A 1382 I 2008 N NULL 1000 1032 struct StuNode { char name[20]; float score; StuNode﹡next; }; ”wangtao ” 67 ∧ strcpy(p-name, ”wangtao ”); p-score=67; p-next=NULL; struct StuNode { char name[20]; float score;

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档