出版社:电子工业出版社
年代:2014
定价:45.0
本书以数据的逻辑结构为线索,介绍数据结构及其建立在数据结构之上的操作和算法,内容涉及数据结构与算法的基本概念、顺序存储结构的线性表、链式存储结构的线性表、串、数组、特殊矩阵与广义表、树与二叉树、图及其应用、查找与搜索引擎、排序等。本书既强调“算法”与“数据结构”之间紧密的依赖关系,也注重算法描述的简洁与干练;既有完整的理论体系,也有很好的应用案例。为了增强可理解性,本书案例与生活实践相联系。
第1章 数据结构与算法概述 11.1 引言 11.1.1 《数据结构与算法》课程到底研究什么 11.1.2 《数据结构与算法》课程介绍 11.1.3 为什么要学习《数据结构与算法》课程 21.2 基本概念和术语 31.2.1 数据 31.2.2 数据项 31.2.3 数据元素 41.2.4 数据对象 41.2.5 数据结构 41.2.6 数据结构的形式化描述 61.2.7 数据的逻辑结构、存储结构与物理结构 71.2.8 数据结构实例 71.3 算法 91.3.1 什么是算法 91.3.2 算法的性质 111.3.3 算法和程序 121.4 算法的表示(描述) 141.4.1 自然语言 141.4.2 计算机语言 151.4.3 图形化工具 161.4.4 伪代码 171.5 算法设计的准则 191.5.1 正确性 191.5.2 可读性 201.5.3 健壮性 201.5.4 效率 211.6 算法效率分析 241.6.1 事后统计的方法 251.6.2 事前分析估算的方法 251.6.3 算法的空间复杂度 281.7 抽象数据类型 30阅读材料 32习题1 35第2章 顺序存储结构的线性表 392.1 基本概念和操作 392.1.1 什么是线性表 392.1.2 线性表的逻辑结构 402.1.3 线性表的基本操作 402.1.4 线性表的顺序存储结构 412.1.5 线性表的插入与删除操作(算法) 422.1.6 顺序表应用举例 452.2 堆栈 472.2.1 堆栈的定义 472.2.2 栈的顺序存储结构与操作(算法) 482.2.3 堆栈在算法设计中的应用 512.3 队列 632.3.1 队列的定义 642.3.2 队列的顺序存储结构与操作(算法) 642.3.3 循环队列 662.3.4 队列应用举例 682.4 集合及其运算 712.4.1 集合的定义 712.4.2 集合运算 722.4.3 集合的顺序存储结构和操作实现 72小结 75习题2 75第3章 链式存储结构的线性表 793.1 什么是链式存储结构的线性表 793.2 线性链表的操作(算法) 823.2.1 线性链表的构造 833.2.2 求表长 863.2.3 查找操作 863.2.4 线性链表的插入 873.2.5 线性链表的删除 893.3 栈的链式存储结构 903.4 队列的链式存储结构 923.5 循环链表 933.6 双向链表 943.7 静态链表 953.8 链表应用 973.9 一元多项式的存储和相加 1003.10 集合的链式存储结构与操作 1033.11 顺序表和链表的比较 106习题3 107第4章 串 1104.1 基本概念 1114.2 串的存储结构 1124.2.1 顺序存储结构 1124.2.2 链式存储结构 1134.3 串的基本操作 1134.3.1 串复制 1144.3.2 求字符串的长度 1154.3.3 字符串连接 1154.3.4 取子串 1154.3.5 判断两个字符串是否相等 1164.3.6 插入字符串 1174.3.7 删除子串 1174.3.8 字符串清空 1184.3.9 判断字符串是否为空 1184.3.10 字符串比较 1184.4 串的模式匹配算法 1194.4.1 模式匹配及其BF算法 1194.4.2 模式匹配的一种改进算法——KMP算法 1204.4.3 其他模式匹配算法 1244.5 串操作应用举例 132习题4 133第5章 数组、特殊矩阵与广义表 1365.1 数组的定义和运算 1365.1.1 数组的基本概念 1365.1.2 数组的特点 1375.2 数组的顺序存储结构 1375.2.1 一维数组 1375.2.2 二维数组 1385.2.3 三维数组 1385.2.4 n维数组 1395.3 特殊矩阵的压缩存储与处理 1415.3.1 基本原则 1415.3.2 对称矩阵的压缩存储 1415.3.3 三角矩阵的压缩存储 1425.3.4 对角矩阵(带状矩阵)的压缩存储 1435.4 稀疏矩阵 1445.4.1 稀疏矩阵的三元组表存储 1455.4.2 稀疏矩阵的转置 1455.4.3 稀疏矩阵的快速转置算法 1475.5.4 稀疏矩阵的乘积 1485.4.5 稀疏矩阵的十字链表存储 1515.5 广义表 1555.5.1 广义表的定义 1555.5.2 广义表的特性 1565.5.3 广义表的基本操作 1565.5.4 广义表的存储 1575.5.5 广义表的基本操作 159习题5 162第6章 树与二叉树 1666.1 基本概念 1666.1.1 什么是树 1666.1.2 基本概念和术语 1676.1.3 树的表示方法 1676.1.4 树的基本操作 1686.1.5 树的存储结构 1686.2 二叉树 1736.2.1 二叉树的定义 1736.2.2 二叉树的基本形态 1736.2.3 两种特殊的二叉树 1746.2.4 二叉树具有的重要性质 1756.2.5 二叉树的存储结构 1766.2.6 二叉树的基本操作 1796.3 二叉树的遍历 1796.3.1 二叉树的遍历 1796.3.2 先序遍历算法 1806.3.3 中序遍历 1816.3.4 后序遍历 1826.3.5 按层次顺序遍历二叉树 1836.3.6 遍历算法的应用 1846.4 二叉树其他运算 1856.4.1 建造二叉树算法 1856.4.2 求二叉树高度(深度) 1866.4.3 求二叉树宽度 1866.4.4 二叉树查找 1876.4.5 输出一棵二叉树 1886.4.6 清除一棵二叉树 1886.5 线索二叉树 1896.5.1 建立线索树 1896.5.2 检索结点 1916.5.3 在线索二叉树上插入一个结点 1926.6 树与森林 1936.6.1 树与二叉树的转换 1936.6.2 森林与二叉树的转换 1946.6.3 树和森林的遍历 1946.7 树的应用 1976.7.1 判定树 1976.7.2 集合的表示 1986.7.3 关系等价求等价类问题 1996.8 二叉排序树 2006.8.1 二叉排序树的定义 2006.8.2 二叉排序树的构造 2016.8.3 二叉排序树的查找 2036.8.4 二叉排序树的更新 2056.8.5 二叉排序树的删除 2056.9 哈夫曼树及其应用 2076.9.1 基本概念 2076.9.2 哈夫曼树的构造 2086.9.3 哈夫曼编码 2106.9.4 最佳判定过程 2116.10 平衡二叉树 2126.10.1 平衡二叉树的引入 2126.10.2 平衡二叉树的定义 2126.10.3 最小不平衡二叉树 2136.10.4 不平衡二叉树的调整方法 2146.10.5 建立平衡二叉树举例 2186.10.6 平衡二叉树与二叉排序树比较 219习题6 220第7章 图及其应用 2237.1 基本概念和术语 2257.1.1 图的定义 2257.1.2 完全图、稠密图、稀疏图 2267.1.3 顶点的度 2277.1.4 子图 2277.1.5 路径和回路 2277.1.6 连通和连通分量 2277.1.7 强连通图和强连通分量 2277.1.8 权和网 2287.2 图的存储结构 2297.2.1 邻接矩阵 2297.2.2 邻接表 2317.2.3 十字链表 2347.2.4 邻接多重表 2367.2.5 图的边集数组 2377.3 图的遍历 2377.3.1 深度优先搜索 2377.3.2 广度优先搜索 2397.3.3 搜索算法在搜索引擎中的应用 2427.4 图的连通性 2437.4.1 无向图的连通性 2437.4.2 有向图的连通性 2447.4.3 生成树和生成森林 2457.4.4 关结点和重连通分量 2457.5 最小生成树 2487.5.1 什么是生成树 2487.5.2 构造最小生成树的普里姆(Prim)算法 2487.5.3 构造最小生成树的Kruskal算法 2527.6 最短路径 2557.6.1 求某一个源点到其他顶点的最短路径 2567.6.2 Bellman-Ford算法 2597.6.3 每对顶点之间的最短路径 2627.7 有向无环图及其应用 2677.7.1 有向无环图的概念 2677.7.2 AOV网与拓扑排序 2687.7.3 AOE网与关键路径 272习题7 277第8章 查找与搜索引擎 2818.1 基本概念与术语 2818.2 顺序查找 2838.3 二分查找(折半查找) 2858.3.1 二分查找的定义 2858.3.2 二分查找算法 2868.3.3 二分查找判定树 2878.3.4 二分查找性能分析 287
广西特色专业及课程一体化建设项目成果,广西高等教育教学改革工程重点项目成果。作者团队开发了“数据结构与算法综合集成演示系统”。本书以数据的逻辑结构为线索,介绍数据结构及其建立在数据结构之上的操作和算法,内容涉及数据结构与算法的基本概念、顺序存储结构的线性表、链式存储结构的线性表、串、数组、特殊矩阵与广义表、树与二叉树、图及其应用、查找与搜索引擎、排序等。本书既强调“算法”与“数据结构”之间紧密的依赖关系,也注重算法描述的简洁与干练;既有完整的理论体系,也有很好的应用案例。为了增强可理解性,本书案例与生活实践相联系。本书以知识单元为基本构件,既可拆卸也可重组,内容丰富,表述详尽,可读性强,适合不同类型的本科院校按照不同的培养规格组织教学。【作者简介】唐培和,教务处处长,教授,博导,自1986年参加工作,一直在广西科技大学任教。曾被评为广西高校教学名师。先后荣获广西教学成果一等奖1项、三等奖2项,广西高校优秀教材二等奖1项。