注册 登录 进入教材巡展 进入在线书城
#
  • #

出版时间:2006年5月

出版社:高等教育出版社

以下为《数据结构与算法(配学习卡)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 高等教育出版社
  • 9787040146165
  • 1
  • 248996
  • 平装
  • 16开
  • 2006年5月
  • 469
  • 工学
  • 计算机科学与技术
内容简介

  本书把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和排序、检索的各种算法,还引入了一些比较高级的数据结构及相关的算法分析技术。
  本书分为基本数据结构、排序和检索、高级数据结构三部分。借助抽象数据类型,从逻辑结构的角度系统地介绍了线性表、字符串、二叉树、树和图等各种基本数据结构;从算法的角度讨论排序、检索和索引算法;从应用的角度介绍了一些复杂的线性表结构、复杂树结构以及空间数据结构。本书采用能够自然体现抽象数据类型概念的C++语言作为算法描述语言,注意对每一种数据结构的不同存储方法与有关算法进行比较分析。很多算法使用了参数化的模板,从而提高算法中数据类型的通用性,支持高效的代码重用。
  本书注意对概念的清晰引入,论述上加强逻辑性,并增加了一些新颖内容。本书可作为高等院校计算机及相关专业学生的教材和参考书,也可供从事计算机的工程技术人员学习参考。
目录

 第1章 概论
  1.1 为什么要学习数据结构
  1.2 什么是数据结构
   1.2.1 数据的逻辑结构
   1.2.2 数据的存储结构
  1.3 抽象数据类型
  1.4 算法及其特性
   1.4.1 算法
   1.4.2 计算复杂性和算法的效率
  1.5 算法的执行效率及其度量
   1.5.1 算法的渐进分析
   1.5.2 最坏、最好和平均情况
   1.5.3 时间和空间资源开销
   1.5.4 大Θ表示法及其分析规则
  1.6 数据结构的选择和评价
  习题
 第2章 线性表、栈和队列
  2.1 线性表
   2.1.1 线性表的抽象数据类型
   2.1.2 线性表的存储结构
   2.1.3 线性表运算分类
  2.2 顺序表——向量
   2.2.1 向量的类定义
   2.2.2 向量的运算
  2.3 链表
   2.3.1 单链表
   2.3.2 双链表
   2.3.3 循环链表
  2.4 线性表实现方法的比较
  2.5 栈
   2.5.1 顺序栈
   2.5.2 链式栈
   2.5.3 栈的应用——计算表达式的值
   2.5.4 栈与递归
  2.6 队列
   2.6.1 顺序队列
   2.6.2 链式队列
   2.6.3 顺序队列与链式队列的比较
  习题
 第3章 字符串
  3.1 字符串抽象数据类型
   3.1.1 基本概念
   3.1.2 String抽象数据类型
  3.2 字符串的存储结构和类定义
   3.2.1 字符串的顺序存储
   3.2.2 字符串类class String的存储结构
  3.3 字符串运算的算法实现
   3.3.1 C标准串运算的实现
   3.3.2 String串运算的实现
  3.4 字符串的模式匹配
   3.4.1 模式匹配原始算法
   3.4.2 字符串的特征向量N
   3.4.3 KMP模式匹配算法
  习题
  上机题
 第4章 二叉树
  4.1 二叉树的概念
   4.1.1 二叉树的定义及相关概念
   4.1.2 满二叉树、完全二叉树和扩充二叉树
  4.2 二叉树的主要性质
  4.3 二叉树的抽象数据类型
  4.4 周游二叉树
   4.4.1 深度优先周游二叉树
   4.4.2 广度优先周游二叉树
  4.5 二叉树的实现
   4.5.1 用指针实现二叉树
   4.5.2 空间开销
   4.5.3 用数组实现完全二叉树
   4.5.4 穿线二叉树
  4.6 二叉搜索树
  4.7 堆与优先队列
  4.8 Huffman编码树
   4.8.1 建立Huffman编码树
   4.8.2 Huffman编码及其用法
  习题
  上机题
 第5章 树
  5.1 树的概念
   5.1.1 树和森林
   5.1.2 森林与二叉树的等价转换
   5.1.3 树的抽象数据类型
   5.1.4 树的周游
  5.2 树的链式存储
   5.2.1 子结点表表示法
   5.2.2 左子结点/右兄弟结点表示法
   5.2.3 动态结点表示法
   5.2.4 动态“左子结点/右兄弟结点”二叉链表表示法
   5.2.5 父指针表示法及等价类的并查算法
  5.3 树的顺序存储
   5.3.1 带右链的先根次序表示法
   5.3.2 带双标记位的先根次序表示法
   5.3.3 带左链的层次次序表示法
   5.3.4 带度数的后根次序表示法
  5.4 K叉树
  习题
  上机题
 第6章 图
  6.1 图的基本概念
  6.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.6 最小支撑树
   6.6.1 Prim算法
   6.6.2 Kruskal算法
  习题
  上机题
 第7章 内排序
  7.1 排序问题的基本概念
  7.2 三种O(n2)的简单排序算法
   7.2.1 插入排序
   7.2.2 冒泡排序
   7.2.3 直接选择排序
   7.2.4 简单排序算法的时间代价对比
  7.3 Shell排序
  7.4 基于分治法的排序
   7.4.1 快速排序
   7.4.2 归并排序
  7.5 堆排序
  7.6 分配排序和基数排序
   7.6.1 桶式排序
   7.6.2 基数排序
  7.7 各种排序算法的理论和实验时间代价
  7.8 排序问题的下限
  习题
  上机题
 第8章 文件管理和外排序
  8.1 主存储器和外存储器
  8.2 外存储器
   8.2.1 磁盘
   8.2.2 磁盘访问时间估算
   8.2.3 磁带
  8.3 外存文件的组织
   8.3.1 文件组织
   8.3.2 C 的流文件
  8.4 缓冲区和缓冲池
  8.5 外排序
   8.5.1 置换选择排序
   8.5.2 二路外排序
   8.5.3 多路归并——选择树
  习题
  上机题
 第9章 检索
  9.1 基于线性表的检索
   9.1.1 顺序检索
   9.1.2 二分检索
   9.1.3 分块检索
  9.2 集合的检索
   9.2.1 集合的数学特性
   9.2.2 计算机中的集合
  9.3 散列方法
   9.3.1 散列函数
   9.3.2 开散列方法(拉链法)
   9.3.3 闭散列方法(开地址法)
   9.3.4 闭散列表的算法
   9.3.5 散列方法的效率分析
  习题
  上机题
 第10章 索引技术
  10.1 线性索引
  10.2 静态索引
   10.2.1 多分树
   10.2.2 ISAM-索引顺序存取方法
  10.3 倒排索引
   10.3.1 基于属性的倒排
   10.3.2 对正文文件的倒排
  10.4 动态索引
   10.4.1 B树
   10.4.2 B树
   10.4.3 VSAM
   10.4.4 B树的性能分析
  10.5 动态索引和静态索引性能的比较
  习题
  上机题
 第11章 高级线性结构
  11.1 多维数组
   11.1.1 特殊矩阵
   11.1.2 稀疏矩阵
  11.2 广义表
   11.2.1 广义表的存储结构
   11.2.2 广义表的周游算法
  11.3 存储管理技术
   11.3.1 可利用空间表
   11.3.2 存储的动态分配和回收
   11.3.3 伙伴系统
   11.3.4 失败处理策略和无用单元回收
  习题
  上机题
 第12章 高级树结构
  12.1 Trie结构和Patricia树
  12.2 改进的二叉搜索树
   12.2.1 最佳二叉搜索树
   12.2.2 平衡的二叉搜索树
   12.2.3 伸展树
  12.3 空间树结构
   12.3.1 k-d树
   12.3.2 PR四分树
   12.3.3 R树
  12.4 树形结构的应用
   12.4.1 决策树
   12.4.2 博弈树
  习题
  上机题
 参考文献