数据结构第3章

数据结构第3章

ID:41689939

大小:128.28 KB

页数:27页

时间:2019-08-30

数据结构第3章_第1页
数据结构第3章_第2页
数据结构第3章_第3页
数据结构第3章_第4页
数据结构第3章_第5页
资源描述:

《数据结构第3章》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第3章链表一、复习要点本章重点讨论最简单的链表结构——单链表。详细地介绍了单链表的抽彖数据类型,单链表的类定义,相应操作的实现,引入了带表头结点的单链表结构。进一步定义了用模板描述的单链表类。作为一种应用,讨论了一元多项式的类定义及其加法操作的实现。此外,讨论了循环链表和双向链表。在复习这一章时需耍对C++语言中的指针和引用类型的使用有清笼的理解。对带表头结点的链表和不带表头结点的链表在插入、删除、搜索时的差别有清塑的认识。而且需耍明确:链表是一种实现级的结构。本章复习的要点:1、基本知识点单链表是一种线性结构,链表

2、各结点的物理存储可以是不连续的,因此各结点的逻辑次序与物理存放次序nJ以不一致。必须理解单链表的定义和特点,单链表的抽彖数据类型和类定义,单链表成员函数,如构造函数、搜索、插入、删除等操作的实现,対比带表头结点单链表的搜索、插入、删除操作,比较其优缺点。其次是循环链表的定义和特点,它与单链表的差别,它的搜索、插入、删除操作的实现。最后是双向链表的定义,它的插入与删除操作的实现。2、算法设计>单链表的迭代求解算法,包括统计链表结点个数,在链表屮寻找与给定值value匹配的结点,在链表屮寻找第i个结点,在链表屮第i个位置

3、插入新结点,删去第i个结点,单链表各结点顺序逆转算法,在单链表中按从左到右和从右到左的顺序遍历的逆转链算法。>带表头结点的单链表的迭代算法,包括统计链表结点个数,在链表中寻找与给定值value匹配的结点,在链表屮寻找笫i个结点,衣链表屮第i个位置插入新结点,删去笫i个结点,连续删除链表中含有value值的结点,两个有序链表的合并。>单链表的递归算法,包括统计链表结点个数,在链表中寻找•给定值value匹配的结点,在链表屮寻找第i个结点,求链表各结点值的和,求链表各结点的值的平均值。>循环链表的迭代算法:包括统计链表结

4、点个数,在链表屮寻找与给定值value匹配的结点,在链表中寻找第i个结点,在链表中第i个位置插入新结点,删去笫i个结点,将循环链表链入单链表的表头。>多项式的建立,两个多项式的相加,两个多项式的相减。>用单链表实现字符串操作,每个结点仅存一个字符。二、难点和重点1、单链表:单链表定义、相应操作的实现。>单链表的两种过义方式(复合方式与嵌套方式)>单链表的搜索算法与插入、删除算法>单链表的递归与迭代算法2、循环链表:单链表与循环链表的异同3、双向链表:带表头结点的双向循环链表>双向循环链衣的尬义,带衣头结点的优点>双向

5、链表的搜索、插入与删除算法4、多项式:多项式的尬义、多项式的表示及加法>多项式•的三种表示>多项式链接衣示的优点>多项式加法的实现(有序链衣的合并算法)三、教材中习题的解析3-1线性表可用顺序表或链表存储。试问:(1)两种存储表示各有哪些主要优缺点?(2)如果有n个表同时并存,并且在处理过程中各表的长度会动态发生变化,表的总数也可能白动改变、在此情况下,应选用哪种存储表示?为什么?(3)若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元索,这时,应采用哪种存储表示?为什么?【解答】(1)顺序存储

6、表示是将数据元素存放于一个连续的存储空间中,实现顺序存取或(按下标)直接存取。它的存储效率高,存収速度快。但它的空间人小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。同时,由于在插入或删除时,为保持原有次序,平均需要移动一半(或近一半)元索,修改效率不高。链接存储表示的存储空间一般在程序的运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生存储溢出的问题。同时在插入和删除时不需要保持数据元索原來的物理顺序,只需要保持原來的逻辑顺序,因此不必移动数据,只需修改它们的链接指针,修改效率较高。但存取表中

7、的数据元素时,只能循链顺序访问,因此存取效率不高。⑵如果有n个表同时并存,并且在处理过程中各表的长度会动态发生变化,表的总数也可能白动改变、在此情况下,应选用链接存储表示。如果采用顺序存储表示,必须在一•个连续的可用空间中为这n个表分配空间。初始时因不知道哪个表增长得快,必须平均分配空间。在程序运行过程中,有的表占用的空间增长得快,有的表占用的空间增长得慢;有的表很快就用完了分配给它的空间,有的表才用了少量的空间,在进行元索的插入时就必须成片地移动其他的表的空间,以空出位置进行插入;在元索删除时,为填补空白,也可能移

8、动许多元素。这个处理过程极其繁琐和低效。如果采用链接存储表示,一个表的存储空间可以连续,可以不连续。表的增长通过动态存储分配解决,只要存储器未满,就不会有表溢出的问题;表的收缩可以通过动态存储释放实现,释放的空间还可以在以后动态分配给其他的存储申请要求,非常灵活方便。对于n个表(包括表的总数町能变化)共存的情形,处理十分简便和快捷。所以选用链接

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。