数据结构与算法:Python语言描述 1~5章课后习题
发布时间:2018-07-19 20:42,
浏览次数:1885
, 标签:
Python
MarkDown语法写的,不知道为啥上传到CSDN不生效,算了就这样将就着看吧......还有,转载请注明出处,谢谢!
1)这本书为什么值得看:
* Python语言描述,如果学的Python用这本书学数据结构更合适
* 2016年出版,内容较新
* 作者裘宗燕,北大教授,质量有保证
2)这本书为什么不值得看:
*
这本书从第七章开始分别是‘图’,‘字典与集合’,‘排序’,这三章在数据结构中属于较难部分,但到这里却能明显感受到作者已经开始着急完本了,明显的越写越不走心,出现了好多错误,讲解的也不像前几章详细了。
## 第三章、线性表
***
### 1.复习下面概念
* 线性表:某类元素的集合,元素之间可能存在某种关系。
* 基本元素集合:
* 元素集合和序列:序列就是元素排列有顺序。
* 下标:序列中的元素在表中有一个确定的位置,称为这个元素的下标。
* 空表:没有元素的表。
* 表的长度:表中元素的个数。
* 顺序关系(线性关系):表元素之间有一个基本关系,叫做下一个关系,下一个关系就是顺序关系(线性关系)。
* 首元素:表的第一个元素。
* 前驱和后继:表中每个元素(除首元素)都有一个前驱元素;表中每个元素(除尾元素)都有一个后驱元素。
* 数据抽象的实现者和使用者:实现;使用。
* 顺序表和链接表:表元素顺序的放在一块连续的存储区里;表元素存放在通过链接构造起来的一系列存储块里。
*
顺序表的元素布局:一种是元素大小相同,在表里等距安排同样大小的存储位置;一种是元素大小不同,实际数据元素另行存储,在顺序表里各单位位置保存对应元素的引用信息(链接)。
* 索引和索引结构:不存放实际数据元素,只存放找到实际数据的线索的顺序表叫做索引。这也是最简单的索引结构。
* 容量:表的存储量大小。
* 元素遍历:完全的访问(可能有操作)一遍表中元素。
* 查找(检索): 查找给定元素(第一次出现)的位置。
* 定位:表的元素的编号。
* 加入和删除元素:加入删除。
* 尾部加入和删除:在表的已有元素之后插入元素;删除表的已有元素的最后一个。
* 保存插入和删除:在位置i处插入元素;删除位置i的元素。
* 表的一体式实现和分离式实现:存储表信息的单元和元素存储区已连续的方式安排在一块存储区里;表对象只存放表信息,实际数据元素独立存储,通过链接关联。
* 动态顺序表:表的容量在使用中能扩充。方式是:申请一块更大的存储区,把实际数据元素复制到这块存储区,修改表对象和元素存储区的链接。
*
元素存储区的增长策略(线性增长,加倍增长):当表容量填满时,要更换一块更大的存储区,存储容量的增大量每次都为一个常量n,就叫做线性增长(其实就是加法);存储量的增加每次都是原容量的某倍,叫做加倍增长(乘法)。
* 元素反转和排序:元素排列顺序进行反转;元素