- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章 线性结构
9.1 数据结构概述 9.1 数据结构概述 数据结构包含内容之一:数据的逻辑结构 数据结构包含内容之一:数据的逻辑结构 数据结构包含内容之一:数据的逻辑结构 数据结构包含内容之二:数据的存储结构 数据结构包含内容之三:数据的运算 算法 算法 线性表 线性表的顺序存储结构(顺序表) 字符型顺序表类定义 顺序表类的构造函数 顺序表类的Find()函数 顺序表类的Search()函数 顺序表类的Insert()函数 顺序表类的Delete()函数 顺序表类的output()函数 顺序表类的友元函数 线性表的链接存储结构(链表) 带头结点的单链表 字符型单链表类的定义 字符型单链表类的构造函数 字符型单链表类的析构函数 字符型单链表类的Find()函数 字符型单链表类的Search()函数 字符型单链表类的Insert()函数 字符型单链表类的Delete()函数 字符型单链表类的ClearList()函数 字符型单链表类的output()函数 字符型单链表类的友元函数 练习 单链表类的Insertx( )函数 练习 单链表类的Insertx( )函数 其他形式的链表(1) 其他形式的链表(2) 以链接方式存储的线性表称为链表。 常用的链表形式有单链表、双链表和循环链表等 。 单链表的一般形式: 单链表中结点的一般形式: 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 线性表 函数的功能是:把下标为i的元素取至x。 9.2 线性表 函数的功能是:返回x在表中的下标 。 9.2 线性表 函数的功能是:在下标i处插入元素x 。 ai-1 ai ① p ② q ③ x ④ ⑤ ? 插入过程演示 9.2 线性表 a0 head …. 函数的功能是:返回下标为i的元素至x,并删除之 。 删除结点过程演示 ai-1 ai ai+1 ① p ② q ③ ④ 9.2 线性表 a0 head …. 函数的功能是:把表清空,即将单链表置为空表 。 9.2 线性表 函数的功能是:输出表中所有元素的值 。 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 线性表 例:将一字符串存入单链表,删除其中所有的数字字符。 程序的输出结果是: 1C++ 2FORTRAN 3PASCAL 4BASIC C++ FORTRAN PASCAL BASIC 9.2 线性表 函数的功能是:在表中查找有无值为x的元素,若有,则显示“已存在”,否则,将值为x的元素插到表头 。 函数的功能是:在表中查找有无值为x的元素,若有,则显示“已存在”,否则,将值为x的元素插到表头 。 单循环链表 设置尾指针的单循环链表 9.2
原创力文档


文档评论(0)