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

出版时间:2008-07

出版社:高等教育出版社

获奖信息:“十二五”普通高等教育本科国家级规划教材,普通高等教育“十一五”国家级规划教材  

以下为《数据结构与算法》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 高等教育出版社
  • 9787040239614
  • 1版
  • 165222
  • 46242570-3
  • 平装
  • 异16开
  • 2008-07
  • 600
  • 400
  • 工学
  • 软件工程
  • TP311.12
  • 计算机科学与技术、电子信息科学类
  • 本科
内容简介

本书是“十二五”普通高等教育本科国家级规划教材,也是北京市精品课程主讲教材。本书按照IEEE/ACMCC2005和教育部教指委关于“计算机科学与技术专业规范”(CCC2005)的要求编写,力求使学生较全面地理解数据结构的概念、掌握各种数据结构与算法的实现方式,同时比较不同数据结构和算法的特点,重点强调实践教学和学生动手能力的培养。

本书的内容涉及基本数据结构、排序、索引、检索、高级数据结构等内容,借助抽象数据类型,从逻辑结构的角度系统地介绍线性表、字符串、二叉树、树和图等各种基本数据结构;从算法的角度系统地介绍各类排序、检索和索引算法;从应用的角度介绍一些更复杂的数据结构与算法分析技术。本书采用能够更自然体现抽象数据类型概念的C++语言作为算法描述语言,注意对每一种数据结构的不同存储方法及相关算法进行比较分析。很多算法使用了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。

本书概念清楚,逻辑性强,内容新颖,可作为普通高校计算机科学与技术专业学生的教材和参考书,也可作为参加计算机科学与技术学科硕士/博士生、软件工程硕士生入学考试的考试参考书,还可供计算机应用技术和电子学等理科专业的学生参考。

目录

 第1章 概论
  1.1 问题求解
   1.1.1 问题描述:股市的传言
   1.1.2 问题分析和抽象
   1.1.3 数据结构和算法设计
  1.2 数据结构
   1.2.1 数据的逻辑结构
   1.2.2 数据的存储结构
   1.2.3 抽象数据类型
  1.3 算法
   1.3.1 算法的概念
   1.3.2 算法设计
  1.4 算法分析
   1.4.1 渐进分析方法
   1.4.2 最佳、最差和平均情况
   1.4.3 时间和空间的折衷
   1.4.4 求解问题时数据结构的选择和评价
  本章小结
  习题
  上机题
 第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 线性表实现方法的比较
  本章小结
  习题
  上机题
 第3章 栈与队列
  3.1 栈
   3.1.1 栈的抽象数据类型
   3.1.2 顺序栈
   3.1.3 链式栈
   3.1.4 表达式求值
   3.1.5 栈与递归
  3.2 队列
   3.2.1 队列的抽象数据类型
   3.2.2 顺序队列
   3.2.3 链式队列
  3.3 栈与队列的深入讨论
   3.3.1 顺序栈与链式栈的比较
   3.3.2 顺序队列与链式队列的比较
   3.3.3 限制存取点的表
  本章小结
  习题
  上机题
 第4章 字符串
  4.1 字符串的基本概念
   4.1.1 字符编码
   4.1.2 字符的编码顺序
   4.1.3 字符串抽象数据类型
  4.2 字符串的存储结构和实现
   4.2.1 字符串的顺序存储
   4.2.2 字符串类class String的存储结构
   4.2.3 字符串运算的实现
  4.3 字符串的模式匹配
   4.3.1 朴素的模式匹配算法
   4.3.2 字符串的特征向量
   4.3.3 KMP模式匹配算法
  本章小结
  习题
  上机题
 第5章 二叉树
  5.1 二叉树的概念
   5.1.1 二叉树的定义和基本术语
   5.1.2 满二叉树、完全二叉树、扩充二叉树
   5.1.3 二叉树的主要性质
  5.2 二叉树的周游
   5.2.1 二叉树的抽象数据类型
   5.2.2 深度优先周游二叉树
   5.2.3 广度优先周游二叉树
  5.3 二叉树的存储结构
   5.3.1 二叉树的链式存储结构
   5.3.2 完全二叉树的顺序存储结构
  5.4 二叉搜索树
  5.5 堆与优先队列
   5.5.1 堆的定义及其实现
   5.5.2 优先队列
  5.6 Huffman树及其应用
   5.6.1 Huffman树
   5.6.2 Huffman编码
  本章小结
  习题
  上机题
 第6章 树
  6.1 树的定义和基本术语
   6.1.1 树和森林
   6.1.2 森林与二叉树的等价转换
   6.1.3 树的抽象数据类型
   6.1.4 树的周游
  6.2 树的链式存储结构
   6.2.1 “子结点表”表示方法
   6.2.2 静态“左子/右兄”表示法
   6.2.3 动态表示法
   6.2.4 动态“左子/右兄”二叉链表表示法
   6.2.5 父指针表示法和在并查集中的应用
  6.3 树的顺序存储结构
   6.3.1 带右链的先根次序表示
   6.3.2 带双标记的先根次序表示
   6.3.3 带度数的后根次序表示
   6.3.4 带双标记的层次次序表示
  6.4 K叉树
  本章小结
  习题
  上机题
 第7章 图
  7.1 图的定义和基本术语
  7.2 图的抽象数据类型
  7.3 图的存储结构
   7.3.1 相邻矩阵
   7.3.2 邻接表
   7.3.3 十字链表
  7.4 图的周游
   7.4.1 深度优先周游
   7.4.2 广度优先周游
   7.4.3 拓扑排序
  7.5 最短路径
   7.5.1 单源最短路径
   7.5.2 每对顶点之间的最短路径
  7.6 最小生成树
   7.6.1 Prim算法
   7.6.2 Kruskal算法
  本章小结
  习题
  上机题
 第8章 内排序
  8.1 排序问题的基本概念
  8.2 插入排序
   8.2.1 直接插入排序
   8.2.2 Shell排序
  8.3 选择排序
   8.3.1 直接选择排序
   8.3.2 堆排序
  8.4 交换排序
   8.4.1 冒泡排序
   8.4.2 快速排序
  8.5 归并排序
  8.6 分配排序和索引排序
   8.6.1 桶式排序
   8.6.2 基数排序
   8.6.3 索引排序
  8.7 排序算法的时间代价
   8.7.1 简单排序算法的时间代价
   8.7.2 排序算法的理论和实验时间
   8.7.3 排序问题的下限
  本章小结
  习题
  上机题
 第9章 文件管理和外排序
  9.1 主存储器和外存储器
  9.2 文件的组织和管理
   9.2.1 文件组织
   9.2.2 C++的流文件
  9.3 外排序
   9.3.1 置换选择排序
   9.3.2 二路外排序
   9.3.3 多路归并——选择树
  本章小结
  习题
  上机题
 第10章 检索
  10.1 基于线性表的检索
   10.1.1 顺序检索
   10.1.2 二分检索
   10.1.3 分块检索
  10.2 集合的检索
   10.2.1 集合的数学特性
   10.2.2 计算机中的集合
  10.3 散列方法
   10.3.1 散列函数
   10.3.2 开散列方法(拉链法)
   10.3.3 闭散列方法(开地址法)
   10.3.4 闭散列表的算法
   10.3.5 散列方法的效率分析
   10.3.6 散列方法的应用
  本章小结
  习题
  上机题
 第11章 索引技术
  11.1 线性索引
  11.2 静态索引——多分树
  11.3 倒排索引
   11.3.1 基于属性的倒排
   11.3.2 对正文文件的倒排
  11.4 动态索引
   11.4.1 B树
   11.4.2 B+树
   11.4.3 B树的性能分析
   11.4.4 动态索引和静态索引性能的比较
  11.5 位索引技术
   11.5.1 位图索引
   11.5.2 签名文件
  11.6 红黑树
   11.6.1 红黑树的定义
   11.6.2 红黑树的相关性质
   11.6.3 插入结点算法
   11.6.4 删除结点算法
  本章小结
  习题
  上机题
 第12章 高级数据结构
  12.1 多维数组
   12.1.1 多维数组的存储
   12.1.2 特殊矩阵
   12.1.3 稀疏矩阵
  12.2 广义表和存储管理
   12.2.1 广义表的定义和存储结构
   12.2.2 可利用空间表
   12.2.3 存储的动态分配和回收
   12.2.4 失败处理策略和无用单元回收
  12.3 Trie结构和Patricia树
  12.4 改进的二叉搜索树
   12.4.1 最佳二叉搜索树
   12.4.2 平衡的二叉搜索树
   12.4.3 伸展树
  本章小结
  习题
  上机题
 参考文献