新書推薦:
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
《
家、金钱和孩子
》
售價:NT$
295.0
《
量价关系——透视股票涨跌脉络
》
售價:NT$
340.0
《
二十四节气生活美学
》
售價:NT$
340.0
《
小白学编织
》
售價:NT$
299.0
《
西班牙内战:秩序崩溃与激荡的世界格局:1936-1939
》
售價:NT$
990.0
《
基于鲲鹏的分布式图分析算法实战
》
售價:NT$
495.0
《
夺回大脑 如何靠自己走出强迫
》
售價:NT$
299.0
|
內容簡介: |
《数据结构:C语言描述》系统地介绍数据结构基础理论知识及算法设计方法,第1~9章从抽象数据类型的角度讨论各种基本类型的数据结构及其应用,主要包括线性表、栈和队列、串、数组和广义表、树和二叉树、图及图算法;第10章和第11章主要讨论查找和排序的各种实现方法及其综合比较;附录给出《数据结构:C语言描述》习题中选择、判断、填空题的参考答案。《数据结构:C语言描述》采用C语言作为数据结构和算法的描述语言。 《数据结构:C语言描述》在内容选取上符合人才培养目标的要求及教学规律和认知规律,在组织编排上体现“先理论、后应用、理论与应用相结合”的原则,并兼顾学科的广度和深度,力求适用面广。《数据结构:C语言描述》具有结构严谨、层次清楚、概念准确、深入浅出、描述清晰等特点。
|
目錄:
|
目录前言第1章 绪论 11.1 引言 11.2 数据结构的基本概念 31.2.1 有关概念和术语 41.2.2 数据的逻辑结构 41.2.3 数据的存储结构 51.2.4 数据的运算 51.3 数据类型和抽象数据类型 61.3.1 数据类型 61.3.2 抽象数据类型 71.4 算法 81.4.1 算法及其特征 81.4.2 常见的算法描述方法 91.4.3 常见的算法设计方法 101.5 算法性能分析与度量 101.5.1 时间复杂度 111.5.2 空间复杂度 141.6 关于学习数据结构 141.6.1 数据结构课程的地位 141.6.2 数据结构课程体系 151.6.3 数据结构课程学习特点 15习题一 16第2章 线性表 192.1 线性表的类型定义 192.1.1 线性表的定义 192.1.2 线性表的抽象数据类型 202.2 线性表的顺序存储及基本操作 212.2.1 线性表的顺序存储结构 212.2.2 顺序表及相关操作的实现 232.2.3 顺序表应用举例 282.2.4 线性表顺序存储结构分析 292.3 线性表的单链表存储结构 292.3.1 线性表的单链表存储结构 302.3.2 单链表上相关操作的实现 312.3.3 链表应用举例 362.3.4 链式存储结构的分析 392.4 双链表与其他链式结构 392.4.1 线性表的双链表存储结构 392.4.2 双链表上相关操作的实现 402.4.3 循环链表 432.4.4 静态链表 442.5 一元多项式的表示及运算 452.5.1 一元多项式的表示及存储 452.5.2 一元多项式创建与打印 462.5.3 一元多项式相加 472.5.4 一元多项式相乘 48习题二 50第3章 栈 533.1 栈的定义及基本运算 533.1.1 栈的定义 533.1.2 栈的抽象数据类型 533.2 顺序栈 543.2.1 顺序栈的定义及存储结构 543.2.2 顺序栈的基本操作 553.3 链栈 573.3.1 链栈的定义及存储结构 573.3.2 链栈的基本操作 583.4 共享栈与多栈 603.4.1 共享栈 603.4.2 多链栈 633.5 栈的应用 653.5.1 栈的简单应用 653.5.2 栈与递归 70习题三 71第4章 队列 744.1 队列的定义及基本运算 744.1.1 队列的定义 744.1.2 队列的抽象数据类型 744.2 循环队列 754.2.1 循环队列的存储实现 754.2.2 循环队列的基本操作 774.2.3 动态循环队列 794.3 链队列 804.3.1 链队列的定义及存储结构 804.3.2 链队列的基本操作 814.4 队列的其他存储结构 824.4.1 循环多队列 824.4.2 动态循环多队列与链式多队列 844.5 队列的应用 84习题四 85第5章 串 885.1 串的定义及其基本运算 885.1.1 串的定义 885.1.2 串的抽象数据类型 885.2 串的定长顺序存储 905.2.1 定长顺序存储的定义 905.2.2 定长顺序串的基本运算 905.3 串的模式匹配算法 955.3.1 简单模式匹配算法——BF算法 955.3.2 改进的模式匹配算法——KMP算法 965.4 串的堆存储结构 1005.4.1 堆存储结构的定义 1005.4.2 基于堆结构的基本运算 1015.5 串的块链存储结构 1045.5.1 块链存储结构的定义及其存储结构 1045.5.2 基于块链结构的基本运算 1055.6 串的应用 113习题五 113第6章 数组和广义表 1166.1 数组的概念和存储 1166.1.1 数组的概念 1166.1.2 数组的存储结构 1176.2 特殊矩阵的压缩存储 1216.2.1 对称矩阵的压缩存储 1216.2.2 三角矩阵的压缩存储 1226.2.3 带状矩阵的压缩存储 1236.3 稀疏矩阵的压缩存储 1246.3.1 稀疏矩阵的三元组表存储 1256.3.2 稀疏矩阵的十字链表存储 1286.4 广义表 1336.4.1 广义表的基本概念 1336.4.2 广义表的基本运算 1356.4.3 广义表的存储结构 1366.4.4 广义表上的基本算法 138习题六 140第7章 二叉树和树 1447.1 二叉树的定义与性质 1447.1.1 二叉树的基本概念 1447.1.2 二叉树的主要性质 1467.1.3 二叉树的抽象数据类型 1477.2 二叉树的存储结构及创建 1487.2.1 顺序存储结构 1487.2.2 二叉树的链式存储结构 1507.2.3 二叉树的创建算法 1517.3 二叉树的遍历及应用 1527.3.1 二叉树的遍历 1527.3.2 二叉树遍历的非递归实现 1547.3.3 遍历算法的应用 1587.3.4 由遍历序列恢复二叉树 1597.4 线索二叉树 1617.4.1 线索二叉树的定义及结构 1617.4.2 线索二叉树的创建及遍历 1637.4.3 线索二叉树的其他相关算法 1657.5 哈夫曼树及其应用 1697.5.1 哈夫曼树的基本概念 1697.5.2 构造哈夫曼树 1717.5.3 哈夫曼编码 1727.5.4 哈夫曼树的应用 1747.6 树的概念与表示 1757.6.1 树的定义及相关术语 1757.6.2 树的表示 1767.6.3 树的存储 1777.7 树与二叉树的转换 1807.7.1 树或树林转换为二叉树 1807.7.2 二叉树转换为树或树林 1817.7.3 树或树林的遍历 1837.8 树的应用 1837.8.1 判定树 1837.8.2 集合的表示 185习题七 186第8章 图论 1928.1 图的基本概念 1928.1.1 图的定义 1928.1.2 图的相关术语 1938.1.3 图的抽象数据类型 1938.2 图的邻接表存储结构 1958.2.1 图的邻接表存储结构定义 1958.2.2 建立在图的邻接表存储结构的基本算法 1968.2.3 创建图的邻接表存储结构 2038.3 图的邻接矩阵存储结构 2058.3.1 图的邻接矩阵存储结构定义 2058.3.2 建立在图的邻接矩阵存储结构的基本操作算法 2078.3.3 创建图的邻接矩阵存储结构 2128.4 图的其他存储结构 2148.4.1 图的十字链表存储结构 2148.4.2 图的邻接多重表存储结构 2158.5 图的广度优先遍历 2168.5.1 广度优先搜索 2168.5.2 邻接矩阵存储结构上的BFS算法 2178.5.3 邻接表存储结构上的BFS算法 2188.6 图的深度优先遍历 2198.6.1 深度优先搜索 2198.6.2 邻接矩阵存储结构上的DFS算法 2208.6.3 邻接表存储结构上的DFS算法 221习题八 223第9章 图算法及应用 2269.1 最小生成树 2269.1.1 最小生成树的定义 2269.1.2 构成最小生成树的Prim算法 2279.1.3 构成最小生成树的Kruskal算法 2309.2 最短路径 2309.2.1 求图中某一顶点到其余各顶点的最短路径——Dijstra算法 2319.2.2 每一对顶点之间的最短路径——Floyd算法 2339.3 AOV网的应用 2369.3.1 AOV网的定义 2369.3.2 拓扑排序 2389.4 AOE网的应用 2409.4.1 AOE网的定义 2409.4.2 关键路径 241习题九 247第10章 查找 25210.1 查找的基本概念 25210.2 静态查找表 25310.2.1 顺序查找 25310.2.2 有序表的折半查找 25410.2.3 分块查找 25610.3 二叉排序树 25610.3.1 二叉排序树的定义 25610.3.2 二叉排序树的相关算法 25710.3.3 二叉排序树的查找效率分析 26010.4 平衡二叉排序树 26010.4.1 平衡二叉排序树的定义 26010.4.2 调整不平衡的二叉排序树 26110.4.3 创建平衡二叉排序树 26310.5 其他查找树 26410.5.1 B树及其基本操作 26410.5.2 B+树的基本概念 26710.6 散列表 26810.6.1 散列表的基本概念 26810.6.2 散列函数的设计 26810.6.3 冲突的处理方法 27010.6.4 散列表的查找分析 272习题十 273第11章 排序 28011.1 排序的基本概念 28011.1.1 排序的定义 28011.1.2 排序方法的分类 28111.1.3 排序算法的分析方法 28111.2 插入排序 28111.2.1 直接插入排序 28211.2.2 折半插入排序 28311.2.3 希尔排序 28511.3 交换排序 28711.3.1 冒泡排序 28711.3.2 快速排序 28911.4 选择排序 29111.4.1 简单选择排序 29111.4.2 树形选择排序 29311.4.3 堆排序 29411.5 归并排序 29711.6 基数排序 29911.6.1 多关键码排序 29911.6.2 链式基数排序 30011.7 内部排序算法的比较 30411.7.1 内部排序算法的比较 30411.7.2 内部排序算法的选用 305习题十一 306附录一 习题参考答案 312附录二 学期考试样卷 318参考文献 323
|
|