顶部
收藏

算法与数据结构——C语言描述(第3版)

“十二五”普通高等教育本科国家级规划教材

作者:
张乃孝 陈光 孙猛
定价:
39.00元
ISBN:
978-7-04-034136-2
版面字数:
440.000千字
开本:
16开
全书页数:
366页
装帧形式:
平装
重点项目:
“十二五”普通高等教育本科国家级规划教材
出版时间:
2012-04-10
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
数据结构

本书以数据结构为主线、算法为辅线组织教学内容。全书共10章,内容包括绪论、线性表、字符串、栈与队列、二叉树与树、集合与字典、高级字典结构、排序、图、算法分析与设计。本书第1版为“面向21世纪课程教材”,2004年被评为“北京市高等教育精品教材”;第2版为普通高等教育“十一五”国家级规划教材,2007年获“普通高等教育精品教材”奖。第3版为“十二五”普通高等教育本科国家级规划教材。

本书体系完整、概念清楚、内容充实、取材适当,采用“数据结构作为抽象数据类型的物理实现”观点,既提高了抽象数据类型在本课程教学中的地位和作用,又突出了自身的教学重点。本书在讲解知识的同时,重视能力的培养,以提高学生运用知识解决实际问题的能力。新版对第2版教材中许多算法进行了改进,力求为读者提供一套具有良好C语言风格、更便于教学的程序代码,以期帮助学生从中体会到算法的魅力和C语言编程的艺术,提高学生的学习兴趣。同时,新版内容也适当地提高了知识的深度和广度,完全覆盖了最新考研大纲的内容要求。

本书许多知识模块具有一定的独立性和相关性,因此不同专业和不同水平的读者可以根据需要组合使用。本书既可以作为计算机专业本科“数据结构”课程教材,也可以作为理工科有关专业本科和计算机专业专科相关课程的教材或考研参考书。

  • 前辅文
  • 第1章 绪论
    • 1.1 从问题到程序
      • 1.1.1 问题分析与抽象
      • 1.1.2 程序的设计与实现
    • 1.2 抽象数据类型
      • 1.2.1 什么是抽象数据类型
      • 1.2.2 意义与作用
      • 1.2.3 举例
    • 1.3 数据结构
      • 1.3.1 什么是数据结构
      • 1.3.2 数据结构的分类
      • 1.3.3 结点与结构
      • 1.3.4 外存数据的组织
    • 1.4 算法
      • 1.4.1 什么是算法
      • 1.4.2 算法的设计
      • 1.4.3 算法的精化
      • 1.4.4 算法的分析
    • 小结
    • 习题
  • 第2章 线性表
    • 2.1 基本概念与抽象数据类型
      • 2.1.1 基本概念
      • 2.1.2 抽象数据类型
    • 2.2 顺序表示
      • 2.2.1 存储结构
      • 2.2.2 运算的实现
      • 2.2.3 分析与评价
      • 2.2.4 顺序表空间的扩展
    • 2.3 链接表示
      • 2.3.1 单链表表示
      • 2.3.2 单链表上运算的实现
      • 2.3.3 分析与比较
      • 2.3.4 单链表的改进和扩充
    • 2.4 应用举例
      • 2.4.1 Josephus问题
      • 2.4.2 采用顺序表模拟
      • 2.4.3 采用循环链表模拟
    • 2.5 矩阵
      • 2.5.1 矩阵的顺序表示
      • 2.5.2 稀疏矩阵的表示方法
    • 2.6 广义表与动态存储管理
      • 2.6.1 广义表
      • 2.6.2 结点的动态分配与回收
      • 2.6.3 废料收集与存储压缩
    • 小结
    • 习题
  • 第3章 字符串
    • 3.1 字符串及其抽象数据类型
      • 3.1.1 基本概念
      • 3.1.2 抽象数据类型
    • 3.2 字符串的实现
      • 3.2.1 顺序表示
      • 3.2.2 链接表示
    • 3.3 模式匹配
      • 3.3.1 朴素的模式匹配
      • 3.3.2 无回溯的模式匹配
    • 小结
    • 习题
  • 第4章 栈与队列
    • 4.1 栈及其抽象数据类型
      • 4.1.1 基本概念
      • 4.1.2 抽象数据类型
    • 4.2 栈的实现
      • 4.2.1 顺序表示
      • 4.2.2 链接表示
    • 4.3 栈的应用
      • 4.3.1 栈与递归
      • 4.3.2 迷宫问题
      • 4.3.3 表达式计算
    • 4.4 队列及其抽象数据类型
      • 4.4.1 基本概念
      • 4.4.2 抽象数据类型
    • 4.5 队列的实现
      • 4.5.1 顺序表示
      • 4.5.2 链接表示
    • 4.6 队列的应用
    • 小结
    • 习题
  • 第5章 二叉树与树
    • 5.1 二叉树及其抽象数据类型
      • 5.1.1 基本概念
      • 5.1.2 主要性质
      • 5.1.3 抽象数据类型
    • 5.2 二叉树的周游
      • 5.2.1 什么是周游
      • 5.2.2 周游的分类
      • 5.2.3 一个例子
      • 5.2.4 周游的抽象算法
    • 5.3 二叉树的实现
      • 5.3.1 顺序表示
      • 5.3.2 链接表示
      • 5.3.3 线索二叉树
    • 5.4 二叉树的应用
      • 5.4.1 堆与优先队列
      • 5.4.2 哈夫曼树及其应用
    • 5.5 树及其抽象数据类型
      • 5.5.1 基本概念
      • 5.5.2 抽象数据类型
      • 5.5.3 树的周游
    • 5.6 树的实现
      • 5.6.1 父指针表示法
      • 5.6.2 子表表示法
      • 5.6.3 长子-兄弟表示法
      • 5.6.4 树的其他表示法
    • 5.7 树林
      • 5.7.1 树林的周游
      • 5.7.2 树林的存储表示
      • 5.7.3 树林与二叉树的转换
    • 小结
    • 习题
  • 第6章 集合与字典
    • 6.1 集合及其抽象数据类型
      • 6.1.1 基本概念
      • 6.1.2 主要运算
      • 6.1.3 抽象数据类型
    • 6.2 集合的实现
      • 6.2.1 集合的位向量表示
      • 6.2.2 集合的单链表表示
    • 6.3 字典及其抽象数据类型
      • 6.3.1 基本概念
      • 6.3.2 抽象数据类型
    • 6.4 字典的顺序表示
      • 6.4.1 存储结构
      • 6.4.2 算法的实现
      • 6.4.3 有序顺序表与二分法检索
    • 6.5 字典的散列表示
      • 6.5.1 基本概念
      • 6.5.2 散列函数
      • 6.5.3 碰撞的处理
      • 6.5.4 散列文件
    • 小结
    • 习题
  • 第7章 高级字典结构
    • 7.1 字典与索引
      • 7.1.1 字典的索引
      • 7.1.2 索引的抽象
    • 7.2 字符树
      • 7.2.1 双链树表示
      • 7.2.2 多链表示
    • 7.3 二叉排序树
      • 7.3.1 二叉排序树
      • 7.3.2 二叉排序树的检索
      • 7.3.3 二叉排序树的插入和构造
      • 7.3.4 二叉排序树的删除
    • 7.4 最佳二叉排序树
      • 7.4.1 基本概念
      • 7.4.2 等概率的检索
      • 7.4.3 不等概的情况
    • 7.5 平衡二叉排序树
      • 7.5.1 基本概念
      • 7.5.2 调整平衡的模式
      • 7.5.3 实现
    • 7.6 索引文件
      • 7.6.1 多分树
      • 7.6.2 B树
      • 7.6.3 B+树
    • 小结
    • 习题
  • 第8章 排序
    • 8.1 基本概念
    • 8.2 插入排序
      • 8.2.1 直接插入排序
      • 8.2.2 二分法插入排序
      • 8.2.3 表插入排序
      • 8.2.4 Shell排序
    • 8.3 选择排序
      • 8.3.1 直接选择排序
      • 8.3.2 堆排序
    • 8.4 交换排序
      • 8.4.1 起泡排序
      • 8.4.2 快速排序
    • 8.5 分配排序
      • 8.5.1 概述
      • 8.5.2 基数排序
    • 8.6 归并排序
      • 8.6.1 内排序
      • 8.6.2 外排序
    • 小结
    • 习题
  • 第9章 图
    • 9.1 基本概念及其抽象数据类型
      • 9.1.1 基本概念
      • 9.1.2 抽象数据类型
    • 9.2 图的周游
      • 9.2.1 深度优先周游
      • 9.2.2 广度优先周游
    • 9.3 存储表示
      • 9.3.1 邻接矩阵表示法
      • 9.3.2 邻接表表示法
      • 9.3.3 两种表示的比较
    • 9.4 最小生成树
      • 9.4.1 最小生成树及其性质
      • 9.4.2 最小生成树的构造
    • 9.5 最短路径
      • 9.5.1 Dijkstra算法
      • 9.5.2 Floyd算法
    • 9.6 拓扑排序
      • 9.6.1 AOV网
      • 9.6.2 拓扑排序
    • 9.7 关键路径
      • 9.7.1 AOE网
      • 9.7.2 关键路径
    • 小结
    • 习题
  • 第10章 算法分析与设计
    • 10.1 算法分析技术
      • 10.1.1 空间代价分析
      • 10.1.2 时间代价分析
    • 10.2 算法设计技术
      • 10.2.1 分治法
      • 10.2.2 贪心法
      • 10.2.3 动态规划法
      • 10.2.4 回溯法
      • 10.2.5 分枝界限法与0/1背包问题
    • 小结
    • 习题
  • 索引
  • 算法清单
  • 参考文献

相关图书