严蔚敏数据结构习题集C语言版答案详解

5星 · 超过95%的资源 需积分: 49 103 下载量 147 浏览量 更新于2024-08-01 收藏 4.1MB PDF 举报
严蔚敏的数据结构习题集是一本针对C语言编写的教材,专为计算机科学特别是考研学习者设计,由主编siice龙抬头iamkent等人共同完成。这本书的目的是提供对严蔚敏《数据结构(c语言版)习题集》中算法设计题目的详细解答。该习题集覆盖了数据结构的多个核心概念,包括: 1. **线性表**:在第二章中,学生可以学习和练习关于线性表的基本操作,如元素的插入、删除和查找,以及数组和链表这两种常见的线性表实现方式。 2. **栈与队列**:第三章讲解了栈和队列这两种基础数据结构,涉及到入栈、出栈、入队、出队等操作,以及它们在实际问题中的应用。 3. **串**:第四章深入探讨字符串处理,包括字符串的连接、查找、分割等操作,以及特殊字符处理。 4. **数组和广义表**:第五章介绍了数组和更通用的数据结构广义表,帮助理解它们的特性和用法。 5. **树和二叉树**:第六章涉及树和二叉树的结构、遍历方法(如前序、中序和后序遍历),以及重要的二叉搜索树等概念。 6. **图**:第七章讨论图的定义、基本操作,如邻接矩阵和邻接表的表示,以及深度优先搜索和广度优先搜索等算法。 7. **动态存储管理**:第八章涵盖了内存分配和释放,以及内存管理的基本策略,如堆和栈的使用。 8. **查找**:第九章重点是查找算法,如顺序查找、二分查找,以及哈希查找等高效查找方法。 9. **内部排序**:最后一章涉及各种排序算法,如冒泡排序、插入排序、选择排序、希尔排序、归并排序和快速排序等。 值得注意的是,解答中强调了算法的设计原则是面向交流和阅读,但并不保证程序可以直接运行,因为其主要目标是提供理解和交流的工具。解答中会提供源代码、必要注释,并对复杂或有特色的题目进行分析说明,对于作者未能解决的问题也会提出讨论。此外,鼓励读者在自己思考和尝试后参考答案,以便更好地消化和巩固所学知识。 如果读者在阅读过程中发现错误或需要改进的地方,可以通过电子邮件zhuoyong-001@163.com向作者反馈。这本习题集提供了丰富的实践机会,有助于深入理解数据结构的基本原理和在C语言中的实现。
2009-11-18 上传
第1章 绪论 1.1 数据结构的基本概念和术语 1.1.1 引言 1.1.2 数据结构有关概念及术语 1.1.3 数据结构和抽象数据类型(ADT) 1.2 算法描述与分析 1.2.1 什么是算法 1.2.2 算法描述工具——C语言 1.2.3 算法分析技术初步 习题一 第2章 线性表 2.1 线性表的定义及其运算 2.1.1 线性表的定义 2.1.2 各种运算简介 2.2 线性表的顺序存储结构(向量) 2.2.1 顺序存储结构(向量) 2.2.2 向量中基本运算的实现 2.3 线性表的链表存储结构 2.3.1 单链表与指针 2.3.2 单链表的基本运算 2.4 循环链表和双向链表 2.4.1 循环链表 2.4.2 双向链表 2.4.3 顺序存储结构与链表存储结构的综合分析与比较 2.5 多项式相加问题 2.5.1 多项式相加的链表存储结构 2.5.2 多项式相加的算法实现 2.6 线性表的算法实现举例 2.6.1 实现线性表顺序存储结构及运算的C语言源程序 2.6.2 单链表处理的C语言源程序 习题二 第3章 栈和队列 3.1 栈 3.1.1 栈的定义及其运算 3.1.2 栈的顺序存储结构(向量) 3.1.3 栈的链表存储结构 3.1.4 栈的应用 3.2 队列 3.2.1 队列的定义及运算 3.2.2 队列的顺序存储结构(向量) 3.2.3 队列的链表存储结构 3.3 栈和队列的算法实现举例 习题三 第4章 串 4.1 串的基本概念 4.2 串的存储结构 4.2.1 串的顺序存储 4.2.2 串的链表存储 4.2.3 串变量的存储映象 4.3 串的运算 4.3.1 串的运算简介 4.3.2 串的匹配运算 4.4 文本编辑 习题四 第5章 数组和广义表 5.1 数组的基本概念 5.1.1 数组的概念 5.1.2 数组的顺序表示 5.1.3 特殊矩阵的压缩存储 5.2 稀疏矩阵的三元组存储 5.2.1 三元组表 5.2.2 稀疏矩阵的运算 5.3 稀疏矩阵的十字链表存储 5.3.1 十字链表的组成 5.3.2 十字链表的有关算法 5.4 广义表 5.4.1 广义表的概念和特性 5.4.2 广义表的存储结构 5.4.3 求广义表的深度 5.4.4 广义表的输出 5.4.5 建立广义表的存储结构 5.5 迷宫问题 习题五 第6章 树 6.1 树的基本概念和术语 6.1.1 树的定义 6.1.2 树的常用术语 6.1.3 树的表示方法 6.2 二叉树 6.2.1 二叉树的定义 6.2.2 二叉树的重要性质 6.2.3 二叉树的存储结构 6.2.4 二叉树二叉链表的一个生成算法 6.3 遍历二叉树 6.3.1 先根遍历 6.3.2 中根遍历 6.3.3 后根遍历 6.3.4 二叉树遍历算法的应用 6.4 线索二叉树 6.4.1 线索二叉树的基本概念 6.4.2 线索二叉树的逻辑表示图 6.4.3 中根次序线索化算法 6.4.4 在中根线索树上检索某结点的前趋或后继 6.4.5 在中根线索树上遍历二叉树 6.5 二叉树、 树和森林 6.5.1 树的存储结构 6.5.2 树与二叉树之间的转换 6.5.3 森林与二叉树的转换 6.5.4 一般树或森林的遍历 6.6 树的应用 6.6.1 二叉排序树 6.6.2 哈夫曼树及其应用 6.7 二叉树的建立和遍历C语言源程序示例 习题六 第7章 图 7.1 图的基本概念和术语 7.1.1 图的基本概念 7.1.2 路径和回路 7.1.3 连通图 7.1.4 顶点的度 7.2 图的存储结构 7.2.1 邻接矩阵 7.2.2 邻接链表 7.3 图的遍历和求图的连通分量 7.3.1 图的建立 7.3.2 图的遍历 7.3.3 求图的连通分量 7.4 图的生成树 7.4.1 生成树的概念 7.4.2 最小生成树 7.4.3 普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法 7.5 最短路径 7.5.1 单源顶点最短路径问题求解 7.5.2 求有向网中每对顶点间的路径 7.6 有向无环图及应用 7.6.1 拓扑排序 7.6.2 关键路径 7.7 图的算法C语言程序实现举例 7.7.1 无向图的邻接表的建立和遍历 7.7.2 有向无环图的拓扑排序和求关键路径 习题七 第8章 查找 8.1 基本概念