数据结构——使用C语言(第6版)

数据结构——使用C语言(第6版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-12
版次: 1
ISBN: 9787121401183
定价: 49.80
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 268页
84人买过
  • 数据结构是计算机学科各专业的一门重要的专业基础课。本书包含了*的研究生入学统考大纲的全部内容。本书系统地介绍了线性表、堆栈、队列、串、数组、广义表、树、二叉树、图等典型数据结构,以及递归、查找和排序的方法。本书理论叙述简洁准确、实践应用举例丰富完整,从而达到了理论和实践密切结合的目的。本书采用C语言描述算法并提供了大量上机调试通过的程序实例。 本书内容丰富,难度适中,图文并茂,应用实例多,教学参考资料丰富。使用本书的读者可登录华信教育资源网(www.hxedu.com.cn)注册后免费下载教学课件。 朱战立,西安石油大学计算机学院,教授。讲授过的主要课程:数据结构,面向对象程序设计,C语言程序设计,Java语言程序设计,计算机导论,专业英语,数据库原理,人工智能,人工神经网络等。 编写教材:《数据结构——使用C语言》(第1版和第2版),西安交通大学出版社; 《数据结构——使用C  语言》,西安电子科技大学出版社;《 面向对象程序设计和C  语言》电子工业出版社;《 计算机导论》(第1~3版),电子工业出版社;《数据结构》(国家\"十五”规划高职高专类教材),西安电子科技大学出版社;《数据结构——使用C语言》 (第4版和第5版),电子工业出版社。 目 录 

    第1章 绪论 1 

    1.1 数据结构的基本概念 1 

    1.1.1 数据、数据元素、数据元素的数据类型 1 

    1.1.2 数据的逻辑结构 2 

    1.1.3 数据的存储结构 3 

    1.1.4 数据的操作 3 

    1.1.5 本书的结构和主要内容 4 

    1.2 抽象数据类型 4 

    1.3 算法和算法的时间复杂度 5 

    1.3.1 算法 5 

    1.3.2 算法的性质和设计目标 6 

    1.3.3 算法的时间效率分析 7 

    1.3.4 算法耗时的实际测试 10 

    1.3.5 数据元素个数和时间复杂度 12 

    习题1 13 

    第2章 线性表 15 

    2.1 线性表概述 15 

    2.1.1 线性表的定义 15 

    2.1.2 线性表的抽象数据类型 15 

    2.2 线性表的顺序表示和实现 16 

    2.2.1 顺序表的存储结构 16 

    2.2.2 顺序表操作的实现 17 

    2.2.3 顺序表操作的效率分析 19 

    2.2.4 顺序表应用举例 20 

    2.3 线性表的链式表示和实现 22 

    2.3.1 单链表的存储结构 22 

    2.3.2 单链表的操作实现 25 

    2.3.3 单链表操作的效率分析 29 

    2.3.4 单链表应用举例 30 

    2.3.5 循环单链表 31 

    2.3.6 双向循环链表 31 

    2.4 静态链表 34 

    2.5 算法设计举例 35 

    2.5.1 顺序表算法设计举例 35 

    2.5.2 单链表算法设计举例 36 

    习题2 37 

    第3章 堆栈和队列 41 

    3.1 堆栈 41 

    3.1.1 堆栈的基本概念 41 

    3.1.2 堆栈的抽象数据类型 42 

    3.1.3 堆栈的顺序表示和实现 42 

    3.1.4 堆栈的链式表示和实现 44 

    3.2 堆栈应用 47 

    3.2.1 括号匹配问题 47 

    3.2.2 算术表达式计算问题 49 

    3.3 队列 53 

    3.3.1 队列的基本概念 53 

    3.3.2 队列的抽象数据类型 54 

    3.3.3 顺序队列及其存在的问题 54 

    3.3.4 顺序循环队列的表示和实现 55 

    3.3.5 链式队列 58 

    3.3.6 队列应用举例 60 

    3.4 优先级队列 64 

    3.4.1 顺序优先级队列的设计和实现 64 

    3.4.2 优先级队列应用举例 66 

    习题3 67 

    第4章 串 71 

    4.1 串概述 71 

    4.1.1 串及其基本概念 71 

    4.1.2 串的抽象数据类型 72 

    4.1.3 C语言的串函数 72 

    4.2 串的存储结构 74 

    4.3 串基本操作的实现算法 76 

    4.4 串的模式匹配算法 80 

    4.4.1 Brute-Force算法 81 

    4.4.2 KMP算法 83 

    4.4.3 Brute-Force算法和KMP算法的比较 88 

    习题4 90 

    第5章 数组 92 

    5.1 数组概述 92 

    5.1.1 数组的定义 92 

    5.1.2 数组的实现机制 92 

    5.1.3 数组的抽象数据类型 93 

    5.2 动态数组 93 

    5.2.1 动态数组的设计方法 93 

    5.2.2 动态数组和静态数组对比 96 

    5.3 特殊矩阵的压缩存储 97 

    5.4 稀疏矩阵的压缩存储 99 

    5.4.1 稀疏矩阵的三元组顺序表 99 

    5.4.2 稀疏矩阵的三元组链表 100 

    习题5 101 

    第6章 递归算法 104 

    6.1 递归的概念 104 

    6.2 递归算法的执行过程 105 

    6.3 递归算法的设计方法 107 

    6.4 递归过程和运行时栈 109 

    6.5 递归算法的时间效率分析 110 

    6.6 算法设计举例 113 

    6.6.1 一般递归算法设计举例 113 

    6.6.2 回溯算法及设计举例 115 

    习题6 118 

    第7章 广义表 120 

    7.1 广义表概述 120 

    7.1.1 广义表的概念 120 

    7.1.2 广义表的抽象数据类型 121 

    7.2 广义表的存储结构 121 

    7.2.1 头链和尾链存储结构 122 

    7.2.2 原子和子表存储结构 122 

    7.3 广义表操作的实现 123 

    7.3.1 头链和尾链存储结构下操作的实现 123 

    7.3.2 头链和尾链存储结构应用举例 126 

    7.3.3 原子和子表存储结构下操作的实现 128 

    7.3.4 原子和子表存储结构应用举例 130 

    习题7 130 

    第8章 树和二叉树 132 

    8.1 树 132 

    8.1.1 树的定义 132 

    8.1.2 树的表示方法 133 

    8.1.3 树的抽象数据类型 134 

    8.1.4 树的存储结构 134 

    8.2 二叉树 137 

    8.2.1 二叉树的定义 137 

    8.2.2 二叉树的抽象数据类型 138 

    8.2.3 二叉树的性质 138 

    8.3 二叉树的设计和实现 140 

    8.3.1 二叉树的存储结构 140 

    8.3.2 二叉树的操作实现 142 

    8.4 二叉树遍历 144 

    8.4.1 二叉树遍历的方法和结构 144 

    8.4.2 二叉链存储结构下二叉树遍历的实现 145 

    8.4.3 二叉树遍历应用举例 146 

    8.4.4 非递归的二叉树遍历算法 148 

    8.5 线索二叉树 150 

    8.5.1 线索二叉树及其用途 150 

    8.5.2 中序线索二叉树的设计 152 

    8.5.3 中序线索二叉树循环操作的设计 153 

    8.5.4 中序线索二叉树应用举例 154 

    8.6 哈夫曼树 155 

    8.6.1 哈夫曼树的基本概念 155 

    8.6.2 哈夫曼编码问题 156 

    8.6.3 哈夫曼编码问题设计和实现 157 

    8.7 等价问题 161 

    8.8 树与二叉树的转换 164 

    8.9 树的遍历 166 

    习题8 166 

    第9章 图 170 

    9.1 图概述 170 

    9.1.1 图的基本概念 170 

    9.1.2 图的抽象数据类型 172 

    9.2 图的存储结构 173 

    9.2.1 图的邻接矩阵存储结构 173 

    9.2.2 图的邻接表存储结构 174 

    9.3 图的实现 175 

    9.3.1 邻接矩阵存储结构下图操作的实现 175 

    9.3.2 邻接表存储结构下图操作的实现 178 

    9.4 图的遍历 181 

    9.4.1 图的深度和广度优先遍历算法 181 

    9.4.2 图的深度和广度优先遍历算法实现 183 

    9.5 最小生成树 185 

    9.5.1 最小生成树的基本概念 185 

    9.5.2 普里姆算法 186 

    9.5.3 克鲁斯卡尔算法 190 

    9.6 最短路径 191 

    9.6.1 最短路径的基本概念 191 

    9.6.2 每对顶点之间的最短路径 195 

    9.7 拓扑排序 197 

    9.8 关键路径 200 

    习题9 203 

    第10章 排序 206 

    10.1 排序的基本概念 206 

    10.2 插入排序 207 

    10.2.1 直接插入排序 208 

    10.2.2 希尔排序 209 

    10.3 选择排序 211 

    10.3.1 直接选择排序 211 

    10.3.2 堆排序 212 

    10.4 交换排序 216 

    10.4.1 冒泡排序 216 

    10.4.2 快速排序 217 

    10.5 归并排序 220 

    10.6 基数排序 222 

    10.7 排序算法性能比较 225 

    习题10 225 

    第11章 查找 229 

    11.1 查找的基本概念 229 

    11.2 静态查找 230 

    11.2.1 顺序表 230 

    11.2.2 有序顺序表 231 

    11.2.3 索引顺序表 232 

    11.3 动态查找 235 

    11.3.1 二叉排序树和平衡二叉树 235 

    11.3.2 B-树和B 树 241 

    11.4 哈希查找 246 

    11.4.1 哈希表的基本概念 246 

    11.4.2 哈希函数构造方法 248 

    11.4.3 哈希冲突解决方法 249 

    11.4.4 哈希表设计 251 

    习题11 254 

    参考文献 258
  • 内容简介:
    数据结构是计算机学科各专业的一门重要的专业基础课。本书包含了*的研究生入学统考大纲的全部内容。本书系统地介绍了线性表、堆栈、队列、串、数组、广义表、树、二叉树、图等典型数据结构,以及递归、查找和排序的方法。本书理论叙述简洁准确、实践应用举例丰富完整,从而达到了理论和实践密切结合的目的。本书采用C语言描述算法并提供了大量上机调试通过的程序实例。 本书内容丰富,难度适中,图文并茂,应用实例多,教学参考资料丰富。使用本书的读者可登录华信教育资源网(www.hxedu.com.cn)注册后免费下载教学课件。
  • 作者简介:
    朱战立,西安石油大学计算机学院,教授。讲授过的主要课程:数据结构,面向对象程序设计,C语言程序设计,Java语言程序设计,计算机导论,专业英语,数据库原理,人工智能,人工神经网络等。 编写教材:《数据结构——使用C语言》(第1版和第2版),西安交通大学出版社; 《数据结构——使用C  语言》,西安电子科技大学出版社;《 面向对象程序设计和C  语言》电子工业出版社;《 计算机导论》(第1~3版),电子工业出版社;《数据结构》(国家\"十五”规划高职高专类教材),西安电子科技大学出版社;《数据结构——使用C语言》 (第4版和第5版),电子工业出版社。
  • 目录:
    目 录 

    第1章 绪论 1 

    1.1 数据结构的基本概念 1 

    1.1.1 数据、数据元素、数据元素的数据类型 1 

    1.1.2 数据的逻辑结构 2 

    1.1.3 数据的存储结构 3 

    1.1.4 数据的操作 3 

    1.1.5 本书的结构和主要内容 4 

    1.2 抽象数据类型 4 

    1.3 算法和算法的时间复杂度 5 

    1.3.1 算法 5 

    1.3.2 算法的性质和设计目标 6 

    1.3.3 算法的时间效率分析 7 

    1.3.4 算法耗时的实际测试 10 

    1.3.5 数据元素个数和时间复杂度 12 

    习题1 13 

    第2章 线性表 15 

    2.1 线性表概述 15 

    2.1.1 线性表的定义 15 

    2.1.2 线性表的抽象数据类型 15 

    2.2 线性表的顺序表示和实现 16 

    2.2.1 顺序表的存储结构 16 

    2.2.2 顺序表操作的实现 17 

    2.2.3 顺序表操作的效率分析 19 

    2.2.4 顺序表应用举例 20 

    2.3 线性表的链式表示和实现 22 

    2.3.1 单链表的存储结构 22 

    2.3.2 单链表的操作实现 25 

    2.3.3 单链表操作的效率分析 29 

    2.3.4 单链表应用举例 30 

    2.3.5 循环单链表 31 

    2.3.6 双向循环链表 31 

    2.4 静态链表 34 

    2.5 算法设计举例 35 

    2.5.1 顺序表算法设计举例 35 

    2.5.2 单链表算法设计举例 36 

    习题2 37 

    第3章 堆栈和队列 41 

    3.1 堆栈 41 

    3.1.1 堆栈的基本概念 41 

    3.1.2 堆栈的抽象数据类型 42 

    3.1.3 堆栈的顺序表示和实现 42 

    3.1.4 堆栈的链式表示和实现 44 

    3.2 堆栈应用 47 

    3.2.1 括号匹配问题 47 

    3.2.2 算术表达式计算问题 49 

    3.3 队列 53 

    3.3.1 队列的基本概念 53 

    3.3.2 队列的抽象数据类型 54 

    3.3.3 顺序队列及其存在的问题 54 

    3.3.4 顺序循环队列的表示和实现 55 

    3.3.5 链式队列 58 

    3.3.6 队列应用举例 60 

    3.4 优先级队列 64 

    3.4.1 顺序优先级队列的设计和实现 64 

    3.4.2 优先级队列应用举例 66 

    习题3 67 

    第4章 串 71 

    4.1 串概述 71 

    4.1.1 串及其基本概念 71 

    4.1.2 串的抽象数据类型 72 

    4.1.3 C语言的串函数 72 

    4.2 串的存储结构 74 

    4.3 串基本操作的实现算法 76 

    4.4 串的模式匹配算法 80 

    4.4.1 Brute-Force算法 81 

    4.4.2 KMP算法 83 

    4.4.3 Brute-Force算法和KMP算法的比较 88 

    习题4 90 

    第5章 数组 92 

    5.1 数组概述 92 

    5.1.1 数组的定义 92 

    5.1.2 数组的实现机制 92 

    5.1.3 数组的抽象数据类型 93 

    5.2 动态数组 93 

    5.2.1 动态数组的设计方法 93 

    5.2.2 动态数组和静态数组对比 96 

    5.3 特殊矩阵的压缩存储 97 

    5.4 稀疏矩阵的压缩存储 99 

    5.4.1 稀疏矩阵的三元组顺序表 99 

    5.4.2 稀疏矩阵的三元组链表 100 

    习题5 101 

    第6章 递归算法 104 

    6.1 递归的概念 104 

    6.2 递归算法的执行过程 105 

    6.3 递归算法的设计方法 107 

    6.4 递归过程和运行时栈 109 

    6.5 递归算法的时间效率分析 110 

    6.6 算法设计举例 113 

    6.6.1 一般递归算法设计举例 113 

    6.6.2 回溯算法及设计举例 115 

    习题6 118 

    第7章 广义表 120 

    7.1 广义表概述 120 

    7.1.1 广义表的概念 120 

    7.1.2 广义表的抽象数据类型 121 

    7.2 广义表的存储结构 121 

    7.2.1 头链和尾链存储结构 122 

    7.2.2 原子和子表存储结构 122 

    7.3 广义表操作的实现 123 

    7.3.1 头链和尾链存储结构下操作的实现 123 

    7.3.2 头链和尾链存储结构应用举例 126 

    7.3.3 原子和子表存储结构下操作的实现 128 

    7.3.4 原子和子表存储结构应用举例 130 

    习题7 130 

    第8章 树和二叉树 132 

    8.1 树 132 

    8.1.1 树的定义 132 

    8.1.2 树的表示方法 133 

    8.1.3 树的抽象数据类型 134 

    8.1.4 树的存储结构 134 

    8.2 二叉树 137 

    8.2.1 二叉树的定义 137 

    8.2.2 二叉树的抽象数据类型 138 

    8.2.3 二叉树的性质 138 

    8.3 二叉树的设计和实现 140 

    8.3.1 二叉树的存储结构 140 

    8.3.2 二叉树的操作实现 142 

    8.4 二叉树遍历 144 

    8.4.1 二叉树遍历的方法和结构 144 

    8.4.2 二叉链存储结构下二叉树遍历的实现 145 

    8.4.3 二叉树遍历应用举例 146 

    8.4.4 非递归的二叉树遍历算法 148 

    8.5 线索二叉树 150 

    8.5.1 线索二叉树及其用途 150 

    8.5.2 中序线索二叉树的设计 152 

    8.5.3 中序线索二叉树循环操作的设计 153 

    8.5.4 中序线索二叉树应用举例 154 

    8.6 哈夫曼树 155 

    8.6.1 哈夫曼树的基本概念 155 

    8.6.2 哈夫曼编码问题 156 

    8.6.3 哈夫曼编码问题设计和实现 157 

    8.7 等价问题 161 

    8.8 树与二叉树的转换 164 

    8.9 树的遍历 166 

    习题8 166 

    第9章 图 170 

    9.1 图概述 170 

    9.1.1 图的基本概念 170 

    9.1.2 图的抽象数据类型 172 

    9.2 图的存储结构 173 

    9.2.1 图的邻接矩阵存储结构 173 

    9.2.2 图的邻接表存储结构 174 

    9.3 图的实现 175 

    9.3.1 邻接矩阵存储结构下图操作的实现 175 

    9.3.2 邻接表存储结构下图操作的实现 178 

    9.4 图的遍历 181 

    9.4.1 图的深度和广度优先遍历算法 181 

    9.4.2 图的深度和广度优先遍历算法实现 183 

    9.5 最小生成树 185 

    9.5.1 最小生成树的基本概念 185 

    9.5.2 普里姆算法 186 

    9.5.3 克鲁斯卡尔算法 190 

    9.6 最短路径 191 

    9.6.1 最短路径的基本概念 191 

    9.6.2 每对顶点之间的最短路径 195 

    9.7 拓扑排序 197 

    9.8 关键路径 200 

    习题9 203 

    第10章 排序 206 

    10.1 排序的基本概念 206 

    10.2 插入排序 207 

    10.2.1 直接插入排序 208 

    10.2.2 希尔排序 209 

    10.3 选择排序 211 

    10.3.1 直接选择排序 211 

    10.3.2 堆排序 212 

    10.4 交换排序 216 

    10.4.1 冒泡排序 216 

    10.4.2 快速排序 217 

    10.5 归并排序 220 

    10.6 基数排序 222 

    10.7 排序算法性能比较 225 

    习题10 225 

    第11章 查找 229 

    11.1 查找的基本概念 229 

    11.2 静态查找 230 

    11.2.1 顺序表 230 

    11.2.2 有序顺序表 231 

    11.2.3 索引顺序表 232 

    11.3 动态查找 235 

    11.3.1 二叉排序树和平衡二叉树 235 

    11.3.2 B-树和B 树 241 

    11.4 哈希查找 246 

    11.4.1 哈希表的基本概念 246 

    11.4.2 哈希函数构造方法 248 

    11.4.3 哈希冲突解决方法 249 

    11.4.4 哈希表设计 251 

    习题11 254 

    参考文献 258
查看详情
相关图书 / 更多
数据结构——使用C语言(第6版)
数据传输原理
北京邮电学院数字通信教研室 编著
数据结构——使用C语言(第6版)
数据治理实践者手记
苏振中
数据结构——使用C语言(第6版)
数据传擒系统
[日]广田宪一郎等著《数据传输系统》翻组 译
数据结构——使用C语言(第6版)
数据传输
J.R.戴维著《数据传输》翻组 译;[美]W.R.贝内特
数据结构——使用C语言(第6版)
数据对话:建立你的数据流利度
(瑞士)马丁·埃普勒 法比耶纳 宾兹利
数据结构——使用C语言(第6版)
数据结构高分(2025版 天勤3版) 大中专公共计算机 率辉 新华正版
率辉
数据结构——使用C语言(第6版)
数据工程之道:设计和构建健壮的数据系统 [美]乔·里斯 [美]马特·豪斯利
[美]乔·里斯(Joe Reis),[美]马特·豪斯利(Matt Housley)
数据结构——使用C语言(第6版)
数据结构与算法入门到提高(Python语言实现)
谭琨、韦韬 编著
数据结构——使用C语言(第6版)
数据合规与网络安全风险防范
冯洋
数据结构——使用C语言(第6版)
数据加密与PKI应用(微课版)
王秀英
数据结构——使用C语言(第6版)
数据通信原理
[美]R.W.勒基等著成都电讯工程学院205教研组 译
数据结构——使用C语言(第6版)
数据资产保护的合规要点与实务
辛小天,周杨,史蕾