注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关数据结构:C语言描述

数据结构:C语言描述

数据结构:C语言描述

定 价:¥21.00

作 者: 陈慧南编著
出版社: 西安电子科技大学出版社
丛编项:
标 签: 数据结构

ISBN: 9787560612553 出版时间: 2003-08-01 包装: 简裝本
开本: 26cm 页数: 304 字数:  

内容简介

  本书作者基于多年讲授“数据结构”和“算法设计与分析”课程的教学经验,在自己编写并使用多年的用Pascal和C++描述的《数据结构》两书的基础上,参考了近年来国外出版的多种数据结构和算法的优秀教材编写了本书。本书不仅系统地介绍了各种传统的数据结构和各种搜索及内、外排序方法,还引入了一些比较高级的数据结构,如伸展树和跳表。本书重视算法的时间和空间分析,包括搜索和排序时间的下界分析。书中采用了抽象数据类型的观点讨论数据结构,并使用C语言描述。全书条理清晰,内容详实,既注重数据结构和算法原理,又十分强调程序设计训练。书中算法都配有完整的C程序,程序结构清晰,构思精巧。所有程序都已在TC2.01下编译通过并能正确运行,它们既是学习数据结构和算法的很好示例,也是很好的程序设计示例。本书内容深入浅出,配有大量的实例和图示,并有丰富的习题,适于自学。本书可作为高等院校计算机科学与技术专业和其他相关专业的《数据结构》教材,也可供计算机工作者和其他希望学习数据结构和算法知识的人员参考。★本书配有电子教案,需要者可与出版社发行部联系,免费索取。

作者简介

暂缺《数据结构:C语言描述》作者简介

图书目录

第1章  概论
1.1  什么是数据结构
1.2  数据抽象和抽象数据类型
1.3  数据结构的描述
1.4  算法和算法分析
  1.4.1  算法及其性能标准
  1.4.2  算法的时间复杂度
  1.4.3  渐近时间复杂度
  1.4.4  最坏、最好和平均情况时间复杂度
  1.4.5  算法的空间复杂度
小结
习题1
第2章  两种基本数据结构
2.1  结构与联合
  2.1.1  结构
  2.1.2  联合
2.2  数组
  2.2.1  一维数组
  2.2.2  二维数组
  2.2.3  多维数组
2.3  链表
  2.3.1  指针
  2.3.2  单链表
  2.3.3  带表头结点的单链表
  2.3.4  循环链表
  2.3.5  双向链表
小结
习题2
第3章  堆栈和队列
3.1  堆栈
  3.1.1  堆栈ADT
  3.1.2  堆栈的顺序表示
  3.1.3  堆栈的链接表示
3.2  队列
  3.2.1  队列ADT
  3.2.2  队列的顺序表示
  3.2.3  队列的链接表示
3.3*  表达式的计算
  3.3.1表达式
  3.3.2  中缀表达式转换为后缀表达式
  3.3.3  计算后缀表达式的值
3.4*  递归和递归过程
  3.4.1  递归的概念
  3.4.2递归的实现
3.5*  演示和测试
小结
习题3
第4章  线性表和数组
4.1  线性表
  4.1.1  线性表ADT
  4.1.2  线性表的顺序表示
  4.1.3  线性表的链接表示
  4.1.4  两种存储表示的比较
4.2*  多项式的算术运算
  4.2.1  多项式ADT
  4.2.2  多项式的链接表示
  4.2.3  多项式的输入和输出
  4.2.4  多项式相加
4.3  数组作为抽象数据类型
4.4  特殊矩阵
  4.4.1  对称矩阵
  4.4.2*  带状矩阵
4.5  稀疏矩阵
  4.5.1  稀疏矩阵ADT
  4.5.2  稀疏矩阵的顺序表示
  4.5.3  稀疏矩阵转置
  4.5.4*  稀疏矩阵相乘
  4.5.5  稀疏矩阵的正交链表表示
  4.5.6*  建立正交链表
  4.5.7*  打印正交链表
小结
习题4
第5章  字符串和广义表
5.1  字符串
  5.1.1  字符串ADT
  5.1.2  字符串的存储表示
  5.1.3  简单模式匹配算法
  5.1.4*  模式匹配的KMP算法
5.2*  广义表
  5.2.1  广义表的概念
  5.2.2  广义表ADT
  5.2.3  广义表的存储表示
  5.2.4  广义表的算法
小结
习题5
第6章  树
6.1  树的墓本概念
  6.1.1  树的定义
  6.1.2  基本术语
6.2  二叉树
  6.2.1  二叉树的定义和性质
  6.2.2  二叉树ADT
  6.2.3  二叉树的存储表示
  6.2.4  二叉树的遍历
  6.2.5*  二叉树遍历的非递归算法
  6.2.6*  二叉树遍历的匝用实例
  6.2.7*  线索二叉树
6.3  树和森林
  6.3.1  森林与二叉树的转换
  6.3.2  树和森林的存储表示
  6.3.3  树和森林的遍历
6.4*  堆和优先权队列
  6.4.1  堆
  6.4.2  优先权队列
6.5  哈夫曼树和哈夫曼编码
  6.5.1  树的路径长度
  6.5.2  哈夫曼树和哈夫曼算法
  6.5.3  哈夫曼编码
6.6*  并查集和等价关系
  6.6.1  并查集
  6.6.2  并查集的实现
  6.6.3  集合按等价关系分组
小结
习题6
第7章集合和搜索
7.1  集合及其表示
  7.1.1  集合和搜索
  7.1.2  集合ADT
  7.1.3  集合的表示
7.2  顺序搜索
7.3  二分搜索
  7.3.1  对半搜索
  7.3.2*  二叉判定树
  7.3.3*  斐波那契搜索
7.4*  搜索算法的时间下界
小结
习题7
第8章搜索树
8.1  二叉搜索树
  8.1.1  二叉搜索树的定义
  8.1.2  二叉搜索树的搜索
  8.1.3  二叉搜索树的插入
  8.1.4  二叉搜索树的删除
  8.1.5*  二叉搜索树的高度
8.2*  二叉平衡树
  8.2.1  二叉平衡树的定义
  8.2.2  二叉平衡树的平衡旋转
  8.2.3  二叉平衡树的插入
  8.2.4  二叉平衡树的删除
  8.2.5  二叉平衡数的高度
8.3  B-树
  8.3.I  m叉搜索树
  8.3.2  B—树的定义
  8.3.3  B—树的高度
  8.3.4  B-树的搜索
  8.3.5  B—树的插入
  8.3.6  B—树的删除
8.4*  键树
  8.4.1  键树的定义
  8.4.2  双链树
  8.4.3  Trie树
8.5*  伸展树
小结
习题8
第9章  跳表和散列表
9.1  字典
9.2*  跳表
  9.2.1  什么是跳表
  9.2.2  跳表的搜索
  9.2.3  跳表的插入
  9.2.4  跳表的删除
9.3  散列表
  9.3.1  散列技术
  9.3.2  散列函数
  9.3.3  解决冲突的拉链法
  9.3.4  解决冲突的线性探查法
  9.3.5  解决冲突的其他开地址法
  9.3.6  性能分析
小结
习题9
第10  章图
10.1  图的基本概念
  10.1.1  图的定义与术语
  10.1.2  图ADT
10.2  图的存储结构
  10.2.1  矩阵表示法
  10.2.2  邻接表表示法
  10.2.3*  多重表表示法
10.3  图的遍历
  10.3.1  深度优先遍历
  10.3.2  宽度优先遍历
10.4  拓扑排序和关键路径
  10.4.1  拓扑排序
  10.4.2*  关键路径
10.5  最小代价生成树
  10.5.1  普里姆算法
  10.5.2*  克鲁斯卡尔算法
10.6*  最短路径
  10.6.1  单源最短路径
  10.6.2  所有顶点之间的最短路径
小结
习题10
第11章  内排序
11.1  排序的基本概念
11.2  插入排序
  11.2.1  直接插入排序
  11.2.2*  希尔排序
11.3  交换排序
  11.3.1  冒泡排序
  11.3.2  快速排序
11.4  合并排序
  11.4.1  两路合并排序
  11.4.2  合并排序的迭代算法
  11.4.3*  链表上的合并排序
11.5  选择排序
  11.5.1  简单选择排序
  11.5.2*  堆排序
11.6*  排序算法的时间下界
11.7*  基数排序
小结
习题11
第12章  文件和外排序
12.1*  辅助存储器简介
  12.1.1  主存储器和辅助存储器
  12.1.2  磁盘存储器
12.2  文件
  12.2.1  文件的基本概念
  12.2.2  文件的组织方式
  12.2.3  C语言文件
12.3  文件的索引结构
  12.3.1  静态索引结构
  12.3.2  动态索引结构
12.4*  外排序
  12.4.1  外排序的基本过程
  12.4.2  初始游程的生成
  12.4.3  多路合并
  12.4.4  最佳合并树
小结
习题12
附录A  软件工程概述
  一、 软件开发方法学
  二、 系统测试方法
附录B  实习要求和实习题
  一、实习目的
  二、实习要求
  三、实习步骤
  四、实习报告
  五、实习题
附录C  专用名词中英文对照表
参考文献

本目录推荐