C++课件 第9章 线性结构(guo20120509).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课件第9章线性结构(guo20120509)

例:编写程序判断一个字符串是否是回文。(madam是回文,abca不是)(设cirqueue.h中是循环顺序队列类的定义和实现,seqstack.h中是顺序栈类的定义和实现) 9.4 队列 以链接方式存储的队称为链式队。 链式队可以用只允许在表头删除和在表尾插入的单链表实 现。 设置指向队头结点的指针变量 front和指向队尾结点的指针 变量 rear。 链式队列(1) 12.4 队列 front rear ? 链式队列模板类的定义与实现: 12.4 队列 链式队列(2) 完成练习9的 第4题(1)-(4)的程序编写,上机调试。 教学进程 课外复习及作业 * 单击“继续”按钮转到“顺序表举例”页(跳过函数定义) * 单击“返回”按钮返回模板定义页 * 单击“继续”按钮转到“顺序表举例”页(跳过函数定义) * 单击“返回”按钮返回模板定义页 * 单击“返回”按钮返回模板定义页 * front(队头指示器) :指向队头元素的位置,整型变量 rear(队尾指示器):指向将要入队元素的位置,整型变量 Maxsize: 队列中最多可存放的元素个数,整型变量 count: 当前队中元素个数 线性表的链接存储结构(链表) 以链接方式存储的线性表称为链表。 常用的链表形式有单链表、双链表和循环链表等 。 单链表的一般形式: 单链表中结点的一般形式: data next 注意:在一般形式的单链表中进行插入、删除操作时,必须针对不同的情况采取不同的处理方法,这为编写程序带来一定的难度和潜在的危险。 空表: head=NULL 9.2 线性表 带头结点的单链表 9.2 线性表 空表: 带头结点的单链表的一般形式: 单链表的常用操作:建空表、判表空、求表长、查找表中元素、插入元素、删除元素、清空表、输出表中元素等 字符型单链表类的定义 继续 单击超链接查看以下函数的实现:构造函数 析构函数 Find() Search() Insert() Delete() ClearList() output() 重载“”的函数 9.2 线性表 字符型单链表类的构造函数 Chain::Chain(){ head=new Node; head-next=0; length=0; } 函数的功能是:建立一个空表。 9.2 线性表 ? 空表: 字符型单链表类的析构函数 Chain::~Chain(){ ClearList(); //释放数据结点空间 delete head; //释放头结点空间 head=0; } 函数的功能是:释放链表空间。 9.2 线性表 字符型单链表类的Find()函数 函数的功能是:把下标为i的元素取至x。 9.2 线性表 字符型单链表类的Search()函数 函数的功能是:返回x在表中的下标 。 9.2 线性表 字符型单链表类的Insert()函数 函数的功能是:在下标i处插入元素x 。 ai-1 ai ① p ② q ③ x ④ ⑤ ? 插入过程演示 9.2 线性表 a0 head …. 字符型单链表类的Delete()函数 函数的功能是:返回下标为i的元素至x,并删除之 。 删除结点过程演示 ai-1 ai ai+1 ① p ② q ③ ④ 9.2 线性表 a0 head …. 字符型单链表类的ClearList()函数 函数的功能是:把表清空,即将单链表置为空表 。 9.2 线性表 字符型单链表类的output()函数 函数的功能是:输出表中所有元素的值 。 void Chain::output(ostream out)const{ Node *p=head-next; while(p!=0){ outp-data“ ”; //out为输出流对象 p=p-next; } } 9.2 线性表 字符型单链表类的友元函数 函数的功能是:为方便输出,重载“” 。 ostream operator(ostream out,const Chain x){ x.output(out); return out; } 9.2 线性表 优点: 1)插入和删除运算的实现效率比较高。 2)在存储长度变化比较大的线性表时适应性较好。 讨论: 以链接方式存储线性表的优缺点 缺点: 1)需要增加额外的空间表示元素之间的逻辑关系。 2)不便于对线性表中元素进行随机存取。 链表适用于表长不确定且插入和删除操作频繁的线性表 9.2 线性表 例:将一字符串存入单链表,删除其中所有的数字字符。 程序的输出结果是:

文档评论(0)

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

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

1亿VIP精品文档

相关文档