顶部
收藏

数据结构与算法(配学习卡)

高等教育百门精品课程精品项目

作者:
许卓群等
定价:
29.50元
ISBN:
978-7-04-014616-5
版面字数:
0.000千字
开本:
16开
全书页数:
469页
装帧形式:
平装
重点项目:
高等教育百门精品课程精品项目
出版时间:
2006-05-31
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机科学与技术专业课程

  本书把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和排序、检索的各种算法,还引入了一些比较高级的数据结构及相关的算法分析技术。
  本书分为基本数据结构、排序和检索、高级数据结构三部分。借助抽象数据类型,从逻辑结构的角度系统地介绍了线性表、字符串、二叉树、树和图等各种基本数据结构;从算法的角度讨论排序、检索和索引算法;从应用的角度介绍了一些复杂的线性表结构、复杂树结构以及空间数据结构。本书采用能够自然体现抽象数据类型概念的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 博弈树
    • 习题
    • 上机题
  • 参考文献

相关图书