热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力

数据结构——C语言(微课版)

中国水利水电出版社
    【作 者】主编 梁海英 【I S B N 】978-7-5170-8536-2 【责任编辑】周益丹 【适用读者群】本专通用 【出版时间】2020-05-27 【开 本】16开 【装帧信息】平装(光膜) 【版 次】第1版第1次印刷 【页 数】252 【千字数】388 【印 张】15.75 【定 价】42 【丛 书】普通高等教育计算机类专业教材 【备注信息】
图书详情

    本书在传授学生数据结构设计和算法设计方法的同时,也注重培养学生分析问题、解决问题和总结问题的能力,更重要的是培养学生对专业的兴趣,从而树立创新意识。本书在结构编排上按照“先理论、后应用、理论与应用相结合”的原则,兼顾学科的广度和深度,力求适用面广。

    本书按照数据的逻辑结构、物理结构及常用操作的体系结构进行讲解,首先阐述线性表、栈、队列、广义表等典型线性结构在顺序存储和链式存储下常用操作的实现方法;然后阐述树、二叉树、图等典型非线性结构在顺序存储和链式存储下常用操作的实现方法;最后阐述查找和排序的各种方法的实现。全书教学目标明确,注重理论与实践相结合;教学内容精准,注重文字与图表相结合;教学模式完善,注重课件与微课视频相结合。本书每章均配有实战练习及大量习题,且全部案例代码已在Visual C++ 6.0环境中成功运行。

    内容精准、结构合理、深入浅出

    精选案例、步骤清晰、图文并茂

    资源丰富、微课视频、程序源码

    “数据结构”是计算机类、电子信息类及相关专业的核心课程,是专业技术基础课,在整个课程体系中处于承上启下的核心位置:一方面扩展和深化学生在离散数学、程序设计语言等课程中学到的基本技术和方法;另一方面为学生进一步学习操作系统、编译原理、数据库等专业知识奠定坚实的理论与实践基础。

    目前比较权威的“数据结构”教材大多是考研指定教材,难度比较大,不太适合应用型本科和专科学生使用。为此,我们编写了本书,通过引入大量案例,将复杂的理论问题直观化,采取案例驱动式教学,更有利于各个层次的学生接受。

    本书在教授学生数据结构设计和算法设计的同时,还培养了学生的逻辑推理能力,增强学生分析问题、解决问题和总结问题的能力,更重要的是培养学生的专业兴趣,树立创新意识。本书在内容选取上符合人才培养目标的要求及教学规律和认知规律,在结构编排上按照“先理论、后应用、理论与应用相结合”的原则,并兼顾学科的广度和深度,力求适用面广。

    全书共分8章,对常用的数据结构,如线性表、栈、队列、稀疏矩阵、广义表、树、二叉树、图等进行深入讲解,使学生能够全面地理解基本概念、逻辑结构、存储结构、操作运算、实现算法以及案例应用。本书还利用比较法讲解各种查找和排序的方法,并对各种算法的性能进行分析,以便学生可以在不同的应用场合选取合适的方法。本书对每种数据结构和算法的剖析遵循由浅入深的原则,并配以实用的案例和图示,还配有相应的C语言源代码,适合具有C语言基础的数据结构初学者。

    本书由梁海英任主编(负责全书统稿),曾霖、樊艳英和殷玉玲任副主编。在本书编写过程中,编者得到了贺州学院的大力支持,参加本书部分内容编写、程序调试、课件制作、习题收集、答案制作、内容审校等工作的还有何巧萍、李晓欣、李玲、黄江鑫、刘威、梁海鹏、林芳雨、黄梦丹、刘凯、黎未然、王熙棠、李凤、高烨林、罗天扬、肖思爱等,在此表示感谢。

    由于编者水平有限,书中难免存在不当之处,敬请读者批评和提出建议。

    前言

    第1章 绪论 1
    1.1 数据结构概述 1
    1.2 常用术语和基本概念 3
    1.3 数据类型 5
    1.4 算法和算法复杂度 6
    1.4.1 算法的重要性 6
    1.4.2 算法的时间复杂度 8
    1.4.3 算法的空间复杂度 9
    1.5 本章实战练习 10
    1.6 本章小结 11
    1.7 习题1 12
    第2章 线性表 14
    2.1 线性表概述 14
    2.2 线性表的顺序存储及运算的实现 15
    2.2.1 线性表的顺序存储 15
    2.2.2 顺序表的基本操作 16
    2.3 线性表的链式存储及运算的实现 20
    2.3.1 单链表 21
    2.3.2 循环链表 29
    2.3.3 双向链表 30
    2.4 本章实战练习 32
    2.4.1 顺序表的常用操作 32
    2.4.2 单链表的常用操作 35
    2.4.3 通讯录管理 38
    2.5 本章小结 44
    2.6 习题2 45
    第3章 栈和队列 50
    3.1 栈 50
    3.1.1 栈的定义 50
    3.1.2 栈的顺序存储与操作 50
    3.1.3 栈的链式存储与操作 54
    3.2 队列 55
    3.2.1 队列的定义 56
    3.2.2 队列的顺序存储与操作 56
    3.2.3 队列的链式存储与操作 59
    3.3 本章实战练习 61
    3.3.1 top为指针且指向栈顶元素的
    下一个位置 61
    3.3.2 top为整数且指向栈顶元素的
    当前位置 64
    3.3.3 栈的应用—数制转换 66
    3.3.4 顺序队列的基本操作 67
    3.3.5 循环队列设置不同队空与队满条件的
    解决方案 70
    3.3.6 链队列的基本操作 73
    3.4 本章小结 76
    3.5 习题3 76
    第4章 特殊矩阵和广义表 81
    4.1 特殊矩阵的压缩存储 81
    4.1.1 特殊矩阵及其压缩存储 81
    4.1.2 稀疏矩阵及其压缩存储 84
    4.2 广义表 86
    4.2.1 广义表的定义 86
    4.2.2 广义表的表示及运算 87
    4.3 本章实战练习 88
    4.4 本章小结 92
    4.5 习题4 92
    第5章 树 94
    5.1 树的概念 94
    5.1.1 树的定义 94
    5.1.2 树的基本术语 95
    5.2 二叉树 96
    5.2.1 二叉树的定义 97
    5.2.2 二叉树的性质 99
    5.3 二叉树的存储结构 100
    5.3.1 二叉树的顺序存储 100
    5.3.2 二叉树的链式存储与操作 101
    5.4 二叉树的遍历 103
    5.4.1 遍历算法 103
    5.4.2 线索二叉树 106
    5.5 树与森林 109
    5.5.1 树和森林的存储 110
    5.5.2 二叉树、树和森林的转换 113
    5.5.3 树和森林的遍历 114
    5.6 哈夫曼树 114
    5.6.1 哈夫曼树的定义 114
    5.6.2 哈夫曼树的构造算法 115
    5.6.3 哈夫曼编码 117
    5.7 本章实战练习 118
    5.7.1 二叉树的基本操作 118
    5.7.2 线索二叉树的操作 122
    5.7.3 哈夫曼树构造 126
    5.8 本章小结 128
    5.9 习题5 128
    第6章 图 137
    6.1 图的定义和基本术语 137
    6.1.1 图的定义 137
    6.1.2 图的基本术语 137
    6.2 图的存储与操作 140
    6.2.1 邻接矩阵 141
    6.2.2 邻接表 143
    6.3 图的遍历 146
    6.3.1 深度优先遍历算法 146
    6.3.2 广度优先遍历算法 148
    6.4 图与最小生成树 150
    6.4.1 生成树和森林的概念 150
    6.4.2 最小生成树 151
    6.5 最短路径 155
    6.5.1 单源点到其余各顶点的最短路径 156
    6.5.2 任意源点之间的最短路径 159
    6.6 AOV网与拓扑排序 159
    6.6.1 AOV网 159
    6.6.2 拓扑排序 160
    6.7 AOE网与关键路径 161
    6.7.1 AOE网 161
    6.7.2 关键路径 162
    6.8 本章实战练习 164
    6.8.1 图的邻接矩阵操作 164
    6.8.2 图的邻接表操作 169
    6.8.3 利用邻接矩阵实现图的深度
    优先遍历 173
    6.8.4 利用邻接表实现图的深度
    优先遍历 175
    6.8.5 利用邻接矩阵实现图的广度
    优先遍历 177
    6.8.6 利用邻接表实现图的广度
    优先遍历 180
    6.8.7 普里姆最小生成树算法 184
    6.8.8 迪杰斯特拉最短路径算法 186
    6.9 本章小结 189
    6.10 习题6 190
    第7章 查找 197
    7.1 查找的基本概念 197
    7.2 静态查找表 198
    7.2.1 顺序查找 198
    7.2.2 折半查找 200
    7.3 动态查找表 203
    7.3.1 二叉排序树 203
    7.3.2 平衡二叉树 206
    7.4 哈希表 209
    7.4.1 哈希表的定义 209
    7.4.2 哈希函数的构造 210
    7.4.3 处理冲突的方法 211
    7.4.4 哈希表的查找和性能 213
    7.5 本章实战练习 214
    7.5.1 顺序查找算法 214
    7.5.2 折半查找算法 215
    7.5.3 二叉排序树查找算法 216
    7.6 本章小结 218
    7.7 习题7 219
    第8章 排序 222
    8.1 排序的基本概念 222
    8.2 插入排序算法 223
    8.2.1 直接插入排序 223
    8.2.2 折半插入排序 224
    8.2.3 希尔排序 225
    8.3 交换排序算法 226
    8.3.1 冒泡排序 226
    8.3.2 快速排序 227
    8.4 选择排序算法 230
    8.4.1 直接选择排序 230
    8.4.2 堆排序 231
    8.5 归并排序算法 233
    8.6 排序算法的比较 235
    8.7 本章实战练习 235
    8.8 本章小结 241
    8.9 习题8 242
    参考文献 245
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册