顶部
收藏

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

“十一五”国家规划教材

作者:
张乃孝
定价:
31.00元
ISBN:
978-7-04-018576-8
版面字数:
440.000千字
开本:
16开
全书页数:
359页
装帧形式:
平装
重点项目:
“十一五”国家规划教材
出版时间:
2008-04-20
物料号:
18576-A0
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
数据结构

本书以数据结构为主线,算法为辅线组织教学内容。全书共分10章:绪论、线性表、字符串、栈与队列、二叉树与树、集合与字典、高级字典结构、排序、图和算法分析与设计。本书体系完整,概念清楚,内容充实,取材适当。第一版在2004年被评为“北京市高等教育精品教材”。

这次再版,采用“数据结构作为抽象数据类型的物理实现”观点,在内容和形式上都进行了许多改进和扩充。提高了抽象数据类型在教学中的地位和作用;更加突出了重点,提高了全书的可读性,还补充了习题,增加了索引。

由于在编写中注意到知识模块的独立性和相关性,不同专业和不同水平的学生可以根据需要组合使用。本书既可以作为信息与计算机专业大学本科的“数据结构”教材,也可以作为一般理工科专业本科和计算机专业专科学生学习相关课程的教材或教学参考书。

  • 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 分枝界限法与/背包问题
    • 小结
    • 习题
  • 参考文献
  • 索引
  • 算法清单
  • 后记

相关图书