读书人

数据结构教程

发布时间: 2010-03-20 07:24:57 作者:

 数据结构教程


基本信息出版社:复旦大学出版社
页码:251 页
出版日期:2006年04月
ISBN:7309014081
条形码:9787309014082
版本:第1版
装帧:平装
开本:16
正文语种:中文

内容简介 《数据结构教程》共分八章,它们分别是线性表、串、排序、数组、树、树的查找及其应用、图和外部排序。复旦大学计算机科学系从1980年开始以此为教材,并不断更新、充实为一本比较完善的、系统的教科书。《数据结构教程》中大量算法都有实用价值,并且用目前最流行的C语言描述所有算法。
《数据结构教程》是计算机各专业及软件有关专业的基础教材,也可作为大专院校教师的教学参考书,以及数据处理工作者和软件应用技术人员的参考资料。
编辑推荐   本书共分八章,它们分别是线性表、串、排序、数组、树、树的查找及其应用、图和外部排序。复旦大学计算机科学系从1980年开始以此为教材,并不断更新、充实为一本比较完善的、系统的教科书。本书中大量算法都有实用价值,并且用目前最流行的C语言描述所有算法。
本书是计算机各专业及软件有关专业的基础教材,也可作为大专院校教师的教学参考书,以及数据处理工作者和软件应用技术人员的参考资料。
目录
序言

第一章线性表
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.g.3环形队列
1.3.4双向队列
1.3.5栈的应用
1.4链接存贮的线性表
1.4.1线性链表的逻辑结构和建立
1.4.2线性链表的插入和删除
1.4.3用线性链表表示多项式
1.4.4几种变形的线性链表
1.4.5双向链表
1.5链接存贮的栈和队列
1.5.1链接栈
1.5.2链接队列
1.6线性表的其他存贮方式
1.6.1压缩存贮
1.6.2索引存贮
1.6.3散列(Hash)存贮
1.7线性表的查找
1.7.1顺序查找法
1.7.2二分查找法
1.7.3分块查找法
1.7.4Hash查找法
1.8广义表
1.8.1广义表的概念和存贮结构
1.8.2广义表递归算法的实现
习题

第二章串
2.1串的基本概念及存贮结构
2.2串的运算
2.3模式匹配
习题

第三章内部排序
3.1插入排序
3.2选择排序
3.3冒泡排序
3.4希尔排序
3.5合并排序
3.5.1有序结点序列的合并
3.5.2两路合并排序
3.6快速排序
3.7基数排序
3.7.1基数排序
3.7.2多关键字排序
习题

第四章数组
4.1数组的顺序存贮
4.1.1一维数组和二维数组
4.1.2三维数组和n维数组
4.1.3三角矩阵和带状矩阵
4.2稀疏矩阵
4.2.1用三元组数组表示的稀疏矩阵
4.2.2用十字链表表示的稀疏矩阵
习题

第五章树
5.1树的基本概念
5.2树的存贮结构
5.3用树表示集合
5.4树的遍历
5.5树的线性表示
5.6二叉树
5.7二叉树的遍历
5.8二叉树的顺序存贮
5.8.1按层次序的存贮形式
5.8.2按前序的存贮形式
5.9穿线树和穿线排序
5.10计算二叉树的数目
习题

第六章树的查找和树的应用
6.1查找树
6.2满树、拟满树和丰满树
6.3堆和堆排序
6.4平衡树
6.5最佳查找树
6.6Huffman算法和Hu-Tucker算法
6.7B-树
6.8Trie结构
6.9解答树
6.9.1背包问题
6.9.2皇后问题
习题

第七章图
7.1图的基本概念
7.2图的存贮结构
7.2.1邻接矩阵
7.2.2邻接表
7.3图的遍历与求图的连通分量
7.3.1深度优先搜索法
7.3.2广度优先搜索法
7.3.3求图的连通分量
7.4生成树和最小(代价)生成树
7.4.1:Prim算法
7.4.2Kruskal算法
7.5最短路径
7.5.1求某个顶点到其他顶点的最短路径
7.5.2求每一对顶点之间的最短路径
7.5.3传递闭包
7.6拓扑排序
7.7关键路径
习题

第八章外部排序
8.1外部存贮设备
8.1.1磁带存贮设备
8.1.2磁盘存贮设备
8.2磁盘文件的排序
8.3磁带文件的排序
8.3.1平衡合并排序
8.3.2多阶段合并排序
习题
参考文献
……
序言 随着计算机科学和技术的发展,计算机的功能和运算速度不断地提高,其应用于信息处理的范围日趋扩大,需要表示、存贮和处理的信息也越来越多。因此,与之相应地,计算机的加工处理对象也从简单的数值发展到一般的符号,进而发展到更复杂的数据结构。
通常的数据结构可用一个二元组—,R)表示,可写成Ds一—,R),其中D是数据集合,R是D中数据元素之间所存在的关系的集合。对于数据集合D,如果D中的数据元素之间存在着不同的关系集合R1和R2,那么DS1=—,R1)和Ds2=—,R2)是两个不同的数据结构。数据集合中的数据元素(也称结点)可以由若干个数据项(也称字段)所组成。数据结构就是根据各种不同的数据集合和数据元素之间的关系,研究如何表示、存贮、操作(查找、插入、删除、修改)这些数据的技术。因此,数据结构是计算机科学和技术中的一门基础课程。它是设计编译程序、操作系统、数据库系统及其他程序系统的重要基础。
数据结构的表示和操作都涉及到算法,如何描述数据的结构和讨论有关的算法,又涉及到程序设计语言。我们选择了C语言为工具,因为C语言不仅具有丰富的数据类型,也是一种较好地体现结构程序设计原则的语言,而且C语言在计算机界日益流行,且为计算机工作者所乐意使用。
全书共分八章。前三章介绍具有线性关系的数据结构,它是数据结构的基础。第一章介绍顺序存贮和链接存贮的线性表、栈和队列的表示和操作;第二章介绍一种特殊的线性表--串,重点介绍串的各种模式匹配算法;第三章介绍排序,讨论实现排序的各种算法,算法的好坏标准按照算法的时间复杂性来衡量。
第四~七章介绍具有非线性关系的数据结构。第四章介绍数组的顺序存贮和用于存取数组元素的地址计算公式,以及稀疏矩阵的表示及其操作;第五章介绍树,树是一种非常重要的非线性结构,它具有较大的实用价值。这一章介绍树的结构和有关的操作,对于二叉树作了更详细的讨论;第六章介绍树的查找及树的应用,讨论了查找树、解答树、B一树的表示及有关的算法;第七章介绍图,图是比树更复杂的数据结构,这一章讨论图的表示和图的遍历,以及图在最短路径、拓扑排序和关键路径等方面的应用。
最后的第八章介绍外部排序,讨论的内容涉及二级存贮设备,对于大型文件系统及数据库管理系统的研究有一定的价值。
本书是编者为讲授数据结构课程而编写的教材,是复旦大学计算机科学系的重点课程教材之一;同时,本书也可作为各类大专院校有关专业和计算机培训班的教材,为软件工作者所必备。
文摘 插图:

读书人网 >程序设计

热点推荐