数据结构——基于Python语言(微课版)
¥59.00定价
作者: 周翔
出版时间:2024-02
出版社:电子工业出版社
- 电子工业出版社
- 9787121473852
- 1-1
- 524995
- 48254012-7
- 平塑
- 16开
- 2024-02
- 272
- 计算机科学与技术
- 本科
内容简介
数据结构是计算机学科的核心课程,自然也是计算机相关专业一门重要的专业基础课程。数据结构研究的是数据的逻辑结构和数据的物理结构及它们之间的相互关系,并对这种结构定义相适应的运算,设计相应的算法。精心选择的数据结构可以带来更高的运行效率或存储效率。因此,数据结构与算法密不可分,掌握这些知识能够为独立完成软件设计与分析奠定坚实的基础。本书基于Python语言系统介绍数据结构的知识,内容包括数据结构与算法概述、线性表、栈与队列、串、数组与广义表、基于线性表的查找算法、基于线性表的排序算法、树、基于树的查找算法、基于树的排序算法、图、计算式查找法。本书可作为高等院校与高职院校计算机相关专业数据结构课程的教材,也可供对数据结构感兴趣的人员参考。
目录
第1章 数据结构与算法概述 / 1__eol__1.1 数据结构 / 1__eol__1.1.1 什么是数据结构 / 1__eol__1.1.2 数据结构的分类 / 3__eol__1.1.3 数据类型与抽象数据类型 / 6__eol__1.2 算法 / 7__eol__1.3 算法分析 / 9__eol__1.3.1 算法的时间复杂度 / 10__eol__1.3.2 算法的空间复杂度 / 13__eol__1.4 本章习题 / 13__eol____eol__第2章 线性表 / 15__eol__2.1 什么是线性表 / 15__eol__2.2 顺序表 / 16__eol__2.2.1 顺序表的定义 / 16__eol__2.2.2 顺序表的实现 / 17__eol__2.3 单链表 / 24__eol__2.3.1 单链表的定义 / 24__eol__2.3.2 单链表的实现 / 25__eol__2.4 双向链表 / 34__eol__2.4.1 双向链表的定义 / 34__eol__2.4.2 双向链表的实现 / 34__eol__2.5 循环链表 / 38__eol__2.5.1 循环链表的定义 / 38__eol__2.5.2 循环链表的实现 / 39__eol__2.6 线性表的比较 / 42__eol__2.6.1 顺序表与链表的比较 / 42__eol__2.6.2 链式存储方式的比较 / 42__eol__2.7 线性表的应用 / 43__eol__2.7.1 一元多项式的表示及相加 / 43__eol__2.7.2 约瑟夫环 / 47__eol__2.8 本章实验:线性表初探 / 49__eol__2.9 本章习题 / 50__eol____eol__第3章 栈与队列 / 53__eol__3.1 什么是栈 / 53__eol__3.2 栈的实现 / 54__eol__3.2.1 顺序栈存储实现 / 54__eol__3.2.2 双端栈存储实现 / 57__eol__3.2.3 链栈存储实现 / 59__eol__3.3 栈与递归 / 61__eol__3.3.1 递归的概念 / 61__eol__3.3.2 栈的应用 / 63__eol__3.4 什么是队列 / 66__eol__3.5 队列的实现 / 66__eol__3.5.1 顺序队列的实现 / 66__eol__3.5.2 循环队列的实现 / 68__eol__3.5.3 链式队列的实现 / 71__eol__3.6 队列的应用 / 74__eol__3.7 讨论课:如何选择合适的线性表解决实际问题 / 75__eol__3.8 本章实验:栈的定义与应用 / 75__eol__3.9 本章习题 / 76__eol____eol__第4章 串 / 78__eol__4.1 什么是串 / 78__eol__4.2 串的存储结构 / 78__eol__4.2.1 串的顺序存储实现 / 78__eol__4.2.2 串的链式存储实现 / 83__eol__4.3 串的模式匹配算法 / 83__eol__4.3.1 朴素的模式匹配算法 / 83__eol__4.3.2 KMP算法 / 85__eol__4.4 综合实验:校友通讯录—线性表的应用 / 89__eol__4.5 本章习题 / 90__eol____eol__第5章 数组与广义表 / 92__eol__5.1 数组 / 92__eol__5.2 矩阵存储 / 93__eol__5.2.1 特殊矩阵 / 93__eol__5.2.2 稀疏矩阵 / 94__eol__5.3 广义表 / 100__eol__5.3.1 广义表的定义 / 100__eol__5.3.2 广义表的存储结构 / 101__eol__5.3.3 广义表的递归运算 / 102__eol__5.4 本章习题 / 105__eol____eol__第6章 基于线性表的查找算法 / 107__eol__6.1 查找概述 / 107__eol__6.2 顺序表查找法 / 108__eol__6.3 折半查找法 / 108__eol__6.4 索引顺序查找法 / 111__eol__6.5 本章实验:折半查找 / 113__eol__6.6 本章习题 / 113__eol____eol__第7章 基于线性表的排序算法 / 115__eol__7.1 排序的概念及分类 / 115__eol__7.2 插入排序 / 116__eol__7.2.1 直接插入排序 / 116__eol__7.2.2 折半插入排序 / 119__eol__7.2.3 希尔排序 / 119__eol__7.3 交换排序 / 120__eol__7.3.1 冒泡排序 / 121__eol__7.3.2 快速排序 / 123__eol__7.4 归并排序 / 124__eol__7.5 本章实验:冒泡排序改动算法 / 126__eol__7.6 本章习题 / 127__eol____eol__第8章 树 / 129__eol__8.1 树 / 129__eol__8.1.1 什么是树 / 129__eol__8.1.2 树的基本概念及常用术语 / 130__eol__8.2 树的存储结构 / 131__eol__8.2.1 双亲表示法 / 131__eol__8.2.2 孩子表示法 / 132__eol__8.2.3 孩子兄弟表示法 / 132__eol__8.3 二叉树 / 134__eol__8.3.1 什么是二叉树 / 134__eol__8.3.2 二叉树的分类 / 134__eol__8.3.3 二叉树的性质 / 135__eol__8.4 二叉树的存储结构 / 137__eol__8.4.1 二叉树的顺序存储 / 137__eol__8.4.2 二叉树的链式存储 / 138__eol__8.5 树的遍历与应用 / 139__eol__8.5.1 二叉树的遍历 / 139__eol__8.5.2 二叉树的应用 / 143__eol__8.5.3 树的遍历 / 147__eol__8.6 树的转换、构建与线索化 / 147__eol__8.6.1 二叉树与树、森林之间的转换 / 147__eol__8.6.2 二叉树的构建 / 150__eol__8.6.3 线索化二叉树 / 153__eol__8.7 哈夫曼树 / 155__eol__8.7.1 什么是哈夫曼树 / 155__eol__8.7.2 哈夫曼树的构造 / 155__eol__8.7.3 哈夫曼编码 / 156__eol__8.7.4 哈夫曼树的实现 / 157__eol__8.8 讨论课:如何学习树 / 158__eol__8.9 本章实验一:二叉树的创建与遍历 / 159__eol__8.10 本章实验二:二叉树的查找 / 159__eol__8.11 综合实验:校友通讯录—树的应用 / 160__eol__8.12 本章习题 / 161__eol____eol__第9章 基于树的查找算法 / 164__eol__9.1 二叉排序树 / 164__eol__9.1.1 二叉排序树的插入 / 164__eol__9.1.2 二叉排序树的删除 / 168__eol__9.1.3 二叉排序树的查找 / 170__eol__9.2 平衡二叉树 / 172__eol__9.2.1 平衡二叉树的定义 / 172__eol__9.2.2 平衡二叉树的平衡化旋转 / 173__eol__9.3 B树 / 177__eol__9.3.1 B树的查找 / 178__eol__9.3.2 B树的插入 / 178__eol__9.3.3 B+树和B*树 / 179__eol__9.4 本章习题 / 180__eol____eol__第10章 基于树的排序算法 / 182__eol__10.1 选择排序 / 182__eol__10.1.1 简单选择排序 / 182__eol__10.1.2 树形选择排序 / 183__eol__10.2 堆排序 / 184__eol__10.2.1 堆的定义 / 184__eol__10.2.2 堆的存储 / 185__eol__10.2.3 堆排序的思想 / 189__eol__10.3 综合比较 / 193__eol__10.4 本章习题 / 194__eol____eol__第11章 图 / 196__eol__11.1 图的基本概念 / 196__eol__11.1.1 什么是图 / 196__eol__11.1.2 图的基本术语 / 196__eol__11.2 图的存储结构 / 199__eol__11.2.1 邻接矩阵 / 200__eol__11.2.2 邻接表 / 202__eol__11.2.3 十字链表 / 205__eol__11.2.4 邻接多重表 / 207__eol__11.3 图的遍历 / 207__eol__11.3.1 深度优先遍历 / 208__eol__11.3.2 广度优先遍历 / 212__eol__11.4 图的应用 / 2