读书:大话数据结构

第1 章数据结构绪论

数据结构;
是相互之间存在一种或多种特定关系的数据元素的集合。

数据:

是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

逻辑结构与物理结构

逻辑结构:是指数据对象中数据元素之间的相互关系。

集合,线性,树形,图形

物理结构:是指数据的逻辑结构在计算机中的存储形式。

顺序存储结构,链式存储结构

第2 章算法

算法:
算法是解决特定问题求解步骤的描述, 在计算机中表现为指令的有限序列, 并且
每条指令表示一个或多个操作。

判断算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)
的阶数。

第3 章线性表

线性表( List ):零个或多个数据元素的有限序列。

1、线性袤的顺序存储结构:

线性表的顺序存储结构,在存、读数据时,不管是哪个位置,时间
复杂度都是0(1) ; 而插入或删除时,时间复杂度都是O(n) 。这就说明,它比较适合元
素个数不大变化,而更多是存取数据的应用。

2、线性表的链式存储结构

把链表中第一个结点的存储位置叫做头指针

循环链表

双向链表:双向链表(也uble linked List) 是在单链袤的每个结点中,再设置一个指向其前驱结点的指针
域。所以在双向链表中的结点都有两个指针域, 一个指向直接后继,另一个指向直接
前驱。

第4 章栈与队列

栈的顺序存储结构

两栈共享空间

 

栈的链式存储结构及实现
为何设计栈? 栈的引人简化了程序设计的问题,划分了不同关注层次,使得思考范围缩小,更
加聚焦于我们要解决的问题核心
。反之,像数组等,因为要分散精力去考虑、数组的下
标增减等细节问题,反而掩盖了问题的本质。

栈的应用一一递归

队列的定义

队列的链式存储结构及实现

队列的链式存储结构,其实就是线性表的单链衰,只不过它只能尾进头出而已,
我们把它简称为链队列。

总结:

栈 是限定仅在表尾进行插入和删除操作的线性表。
队列( queue) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性
表。

第5 章串

1、串的顺序存储结构
 

2、串的链式存储结构

KMP 模式匹配算法(字符串操作的原理)

模式匹配算法, 可以大大避免重复遍历的情况,我们把它称之为克努特一莫里斯一普拉特算法, 简称KMP 算
法。

第6 章树

二叉树的定义

二叉树性质

性质1 :在二叉树的第i 层上至多有21- 1 个结点(i > =1 ) 。

性质2: 深度为k 的二叉树至多有2飞1 个结点(k >= l) 。

……

二叉树的存储结构

不存在的结点设置为"^"

遍历二叉树

1.前序遍历
规则是若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子
树, 再前序遍历右子树。如图6-8-2 所示,遍历的顺序为: ABDGHCE I F 。

2. 中序遍历
规则是若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结
点) ,中序遍历根结点的左子树,然后是访问根结点,最后中序遍历右子树。如图6-8-3
所示, 遍历的顺序为: GDHBAE I CF 。

3. 后序遍历
规则是若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左
右子树,最后是访问根结点。如图6品4 所示i 遍历的顺序为.: GHDBIEFCAo

4 . 层序遍历
规则是若树为空, 则空操作返回,否则从树的第一层,也就是根结点开始访问,
从上而下逐层遍历,在同一层中, 按从左到右的颇用才结点逐个访问。如图6-8- 5 所
示,遍历的顺序为: ABCDEFGHL.

 

树、森林与二叉树的转换

 

树转二叉树

二叉树转换为树

二叉树转换为森林

赫夫曼树及其应用

赫夫曼编码

编码

树、森林看似复杂,其实官们都可以转化为简单的二叉树来处理,我们提供了
树、森林与二叉树的互相转换的办法,这样就使得面对树和森林的数据结构时,编码
实现成为了可能。

第7 章图

图的定义与术语总结

图按照有无方向分为无向图和有向图。无向图自顶点和边构成,有向图由顶点和
弧何成。弧有弧尾和弧头之分。
图按照边或弧的多少分稀疏图和稠密图。如果任意两个顶点之间都存在边叫完全
圈, 有向的叫有向完全圈。若无重复的边或顶点到自身的边则叫简单图。
图中顶点之间有邻接点、依附的概念。无向图顶点的边数叫做度,有向图顶点分
为入度和出度。
图上的边或弧上带权则称为网。
图中顶点间存在路径,两顶点存在路径则说明是连通的,如果路径最终回到起始
点则称为环, 当中不重复叫简单路径。若任意两顶点都是连通的,则图就是连通图,
有向则称强连通图。图中有子图, 若子图极大连通则就是连通分量, 有向的则称强连
通分量。
无向图中连通旦n 个顶点n-l 条边叫生成树。有向图中一顶点入度为。其余顶
点入度为1 的叫有向树。一个有向固自若干棵有向树构成生成森林。

记得看过一个创意,我非常喜欢。说的是在美国, 晚上需要保安通过视频监控对
如商场超市、码头仓库、办公写字楼等场所进行安保工作,如图7斗-9 所示。值夜班
代价总是比较大的,所以人员成本很高。美国的黑夜就是中国的白天,利
用互联网,他的员工白天上班就可以监控到美国仓库夜间的实际情况

充分利用现有的资源,正向思维、逆向思维、整合思维可以创造更大价值。

深度优先遍历

找钥匙方案:无论从哪一阎房间开始都可以,比如主
卧室,然后从房间的一个角开始,将房间内的墙角、床头柜、床上、床下、衣柜里、
衣柜上、前面的电视柜等挨个寻找, 做到不放过任何一个死角,所有的抽屉、储藏柜
中全部都找遍,形象比喻就是翻个底朝天,然后再寻找下一间,直到找到为止。

广度优先遍历

我们把构造连通网的最小代价生成树
称为最小生成树( Minimwn Cost Spanning Tr叫。
找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法。

拓扑排序介绍

第8 章查找

顺序表查找:从表中第一个(或最后一个)记录开始, 逐个进行记亲的关键字和给定值比
较,若某个记录的关键字和给定值相等,则查找成功, 找到所查的记录;如果直到最
后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所查的记
录,查找不成功。

有序表查找

折半查找:对图书做了有序排列, 一个线性表有序时,对于查找总是很有帮助的。

插值查找:

斐波那契查找:

稠密索引(字典)

分块索引

第9 章排序

内排序是在排序整个过程中,待排序的所有记录全部被就置在内存中。外排序是
由于排序的记录个数太多, 不能同时放置在内存,整个排序过程需要在内外存之间多
次交换数据才能进行。

 

完结!加油!!!

别人读书:读《大话数据结构》

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值