本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
在人工智能时代下,本书将带领读者通过学习一些简单的计算机数据结构和相关算法,来提高使用编程语言的能力,从而探索更加广阔的编程世界。本书主要介绍了线性表、栈与队列、递归、搜索和排序、树、图等常用的数据结构和算法的概念和*基本的应用。本书引入了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及的一些经典算法逐行分析、多算法比较。本书有趣易读,算法讲解细致深刻,是一本非常适合算法入门的读物。
本书可作为青少年的自学参考书,也可作为中学生学习人工智能所应用的算法的参考教材。
目录
前 言
第1章 初探数据结构1
1.1?数据结构起源1
1.2?数据结构相关基本概念和术语1
1.2.1?数据1
1.2.2 数据元素2
1.2.3 数据项2
1.2.4 数据对象2
1.2.5 数据结构3
1.3 逻辑结构与物理结构3
1.3.1 逻辑结构3
1.3.2 物理结构5
1.4 参考题6
第2章 算法7
2.1 数据结构与算法的关系7
2.2 两种算法的比较7
2.3 算法的定义8
2.4 算法的特性9
2.4.1 输入输出9
2.4.2 有穷性9
2.4.3 确定性9
2.4.4 可行性9
2.5 算法设计的要求10
2.5.1 正确性10
2.5.2 可读性10
2.5.3 健壮性11
2.5.4 时间效率和存储量11
2.6 算法效率的度量方法11
2.6.1 事后统计方法11
2.6.2 事前分析估算方法12
2.7 参考题13
第3章 线性表14
3.1 线性表的定义14
3.2 线性表的顺序存储结构15
3.2.1 两种存储结构15
3.2.2 顺序存储结构的地址计算方法16
3.3 线性表的链式存储结构16
3.3.1 顺序存储结构的不足的解决办法16
3.3.2 线性表链式存储结构定义17
3.4 单链表结构与顺序存储结构的优缺点19
3.5 列表20
3.5.1 无序列表抽象数据类型20
3.5.2 实现无序列表:链表21
3.5.3 实现有序列表31
3.6 参考题34
第4章?栈与队列35
4.1 栈的定义35
4.2 栈的抽象数据类型36
4.3 用Python实现栈37
4.4 队列的定义39
4.5 队列的抽象数据类型40
4.6 用Python实现队列41
4.7 双端队列的定义42
4.8 双端队列的抽象数据类型43
4.9 用Python实现双端队列44
4.10 参考题45
第5章 递归46
5.1 引言46
5.2 何谓递归46
5.2.1 计算一列数之和46
5.2.2?递归三原则49
5.2.3?将整数转换成任意进制的字符串49
5.3?栈帧:实现递归51
5.4 递归可视化53
5.5 复杂的递归问题59
5.6 探索迷宫62
5.7 动态规划68
5.8 参考题75
第6章 搜索和排序76
6.1 引言76
6.2 搜索76
6.2.1?顺序搜索76
6.2.2 二分搜索79
6.2.3 散列81
6.3 排序92
6.3.1 冒泡排序92
6.3.2 选择排序96
6.3.3 插入排序97
6.3.4 希尔排序99
6.3.5 归并排序102
6.3.6 快速排序106
6.4 参考题109
第7章 树110
7.1 引言110
7.2 树的定义113
7.3 树的实现114
7.3.1 第Ⅰ种实现方法——列表法115
7.3.2 第Ⅱ种实现方法——节点法118
7.4 二叉树的应用121
7.4.1 解析树121
7.4.2 树的遍历127
7.5 参考题131
第8章 图132
8.1 引言132
8.2 定义132
8.3 图的抽象数据类型134
8.3.1 邻接矩阵134
8.3.2 邻接表135
8.3.3 实现136
8.4 参考题140
附录141
参考答案141