高级搜索  |  搜索帮助
最近的浏览历史
浏览此书的还浏览过
购买此书的人还购买过
书  名:数据结构教程(第二版)
  • 作  者: 王少波 张志
  • 出版时间: 2017-10-01
  • 出 版 社: 清华大学出版社
  • 字  数: 644 千字
  • 印  次: 2-1
  • 印  张: 26.5
  • 开  本: 16开
  • ISBN: 9787302476832
  • 装  帧: 平装
  • 定  价:¥49.00
电子书价:¥34.30 折扣:70折 节省:¥14.70 vip价:¥34.30 电子书大小:38.37M
配套资源下载:
  • 名称
  • 说明
  • 权限
  • 文件大小
  • 点击图标下载
  • 图书样章
  • 所有用户
  • 256K
共有商品评论0条 查看评论摘要
内容简介
  “数据结构”是计算机及信息管理专业的必修课程。
本书是作者在总结三十多年数据结构教学经验的基础上编写而成。全书共9章,内容涵盖数据结构的基本概念、线性表和串、栈和队列、树和二叉树、图、数组和矩阵、排序、查找、文件。本书采用C++程序设计语言对算法进行描述。本书不仅介绍了数据结构的相关理论,而且运用大量的实际案例充实教材的内容,力求既有理论深度,又有实用价值。附录A中还给出了数据结构课程实践中用到的VC++6.0编译环境介绍; 附录B给出本课程实践内容及要求; 附录C给出实践报告范本。每章都提供相关习题并附有部分习题答案。
本书是按高等院校对计算机及信息管理专业本科四年制教学大纲的要求编写的教材,也可以作为其他相关专业的教材,还可以作为计算机科技工作者的参考书。
前言
  本书是按高等院校计算机专业及信息管理专业本科四年制教学计划“数据结构”课程教学大纲要求编写的教材,还可以作为计算机科技工作者及其相关专业人员的参考书。在学习本书知识前,要求读者具备C++程序设计的知识。
“数据结构”已成为一门比较成熟的课程。它是计算机系统软件和应用软件研制者的必修课程。数据结构和算法是计算机基础性研究内容之一,掌握这个领域的知识对于利用计算机资源高效地开发计算机程序是非常必要的。
数据结构理论的应用范围已经深入到编译系统、操作系统、数据库、人工智能、信息科学、系统工程、计算机辅助设计及信息管理领域。数据结构主要解决非数值计算应用问题。
从理论上讲: 数据结构的概念严谨、抽象; 每种数据结构类型描述层次清晰可见——概念层、逻辑定义层、物理存储层、运算实现层; 每种数据结构类型描述反映了实现问题的思想、实现的前提以及不同实现方式的特点和优劣。
数据结构描述的内容看上去如同程序,但不是程序,它是程序设计思想的抽象化、一般化,它不依赖于某种物理设备甚至某种语言系统,学习者通过“数据结构”课程不仅能获得专业知识,而且能学到一种思维方式。
从实践上讲,数据结构是建立在抽象化描述基础之上的实践性理论,这门学科只有赋予实践的内容才具有完备性,具体化是该学科的又一特点。在计算机系统中全面体现着数据结构的作用,系统框架结构的构建、程序实现的精巧化都融入了数据结构的理论思想和技术。
本书叙述了各种基本数据结构的概念,包括数据结构的逻辑定义、物理实现及其相应运算,并举例说明怎样用这些抽象的概念来解决实际问题。通过本书的学习不仅能正确地掌握数据结构的基本理论,并能运用这些理论来解决实际问题。
本书是编者集多年从事计算机软件设计实践及讲授“数据结构”课程的体会,并参考分析了国内外数据结构书籍文献编写而成的。本书采用广泛使用的C++语言描述算法,并进行了适当的算法复杂性分析。
“数据结构”课程不但理论性很强,同时实践性也很强。本书在每一章的最后都安排了适量的习题,供读者练习。
本书共分9章,介绍了数据结构的基本概念及线性表和串、栈和队列、树和二叉树、图、数组和矩阵、排序、查找、文件的数据结构、算法及其应用案例。
本书由王少波、张志编著。王少波负责编写第1、2、3、4、7章及附录,张志负责编写第5、6、8、9章,全书由王少波负责统稿。
在成书过程中,编者参考了有关书籍,在此向这些书籍的作者表示感谢。
由于编者水平有限,书中可能存在不妥与疏漏之处,恳请读者不吝指教。
编者
2017年6月
目录
第1章绪论

1.1什么是数据结构

1.1.1数据结构相关事例

1.1.2数据结构的定义

1.2数据结构的相关概念

1.2.1数据和信息

1.2.2数据元素

1.2.3结构类型

1.2.4静态存储空间分配回收和动态存储空间分配回收

1.3数据类型、抽象数据类型和数据结构

1.3.1类和数据类型

1.3.2抽象数据类型

1.3.3数据结构、数据类型和抽象数据类型

1.4算法及算法分析、算法描述

1.4.1算法和程序

1.4.2程序性能和算法效率

1.4.3算法分析

1.4.4算法描述

习题1

第2章线性表和串

2.1线性表的定义

2.1.1线性表的逻辑结构

2.1.2线性表的抽象数据类型

2.2线性表的顺序存储及操作

2.2.1线性表顺序存储

2.2.2线性表顺序存储结构下的操作实现

2.3简单链表存储结构及操作

2.3.1简单链表的存储

2.3.2简单链表的操作实现

2.4双向链表

2.4.1双向链表的存储

2.4.2双向链表类定义

2.4.3双向链表的操作

2.5单向循环链表和双向循环链表

2.5.1单向循环链表的存储

2.5.2双向循环链表的存储

2.6模拟指针方式构造简单链表

2.6.1模拟链表的存储空间的构建

2.6.2在模拟链表空间上构建简单链表

2.7多重链表

2.8链表应用

2.8.1结点移至表首运算

2.8.2链表的逆向运算

2.8.3多项式的相加运算

2.8.4十字链表结构的应用

2.8.5一个较复杂的机票售票系统的数据结构方案

2.9串

2.9.1串的定义

2.9.2串的逻辑结构及运算

2.9.3串的顺序存储结构

2.9.4串的链式存储结构

2.10线性表基本算法的程序实现

2.10.1顺序存储结构线性表程序实现

2.10.2带表头结点的简单链表程序实现

习题2

第3章堆栈和队列

3.1堆栈的定义

3.1.1堆栈的逻辑结构

3.1.2堆栈的抽象数据类型

3.2堆栈的顺序存储及操作

3.2.1堆栈顺序存储

3.2.2顺序存储结构堆栈的运算实现

3.3堆栈的链式存储及操作

3.3.1堆栈的链式存储

3.3.2链式栈类的定义

3.3.3链式栈类运算的实现

3.4多个栈共享邻接空间

3.5堆栈的应用

3.5.1检验表达式中括号的匹配

3.5.2表达式的求值

3.5.3背包问题求解

3.5.4地图四染色问题求解

3.6队列的定义

3.6.1队列的逻辑结构

3.6.2队列的抽象数据类型

3.7队列的顺序存储及操作

3.7.1队列的顺序存储

3.7.2顺序存储结构下队列的运算实现

3.8队列的链式存储及操作

3.8.1队列的链式存储

3.8.2链式队列模板类的定义

3.8.3链式队列的操作

3.9队列的应用

3.9.1列车重排

3.9.2投资组合问题

3.10堆栈和队列基本算法的程序实现

3.10.1堆栈顺序存储结构程序实现

3.10.2队列顺序存储结构程序实现

习题3

第4章树和二叉树

4.1树、森林的概念

4.1.1树的定义

4.1.2树的术语

4.2二叉树定义及性质

4.2.1二叉树的定义

4.2.2二叉树的性质

4.2.3二叉树的抽象数据类型

4.3二叉树的存储结构

4.3.1二叉树的顺序存储

4.3.2二叉树的链式存储

4.4二叉树链式存储结构下的操作

4.4.1二叉树的操作概念

4.4.2二叉树的前序、中序、后序遍历操作

4.4.3二叉树的层次遍历运算

4.5线索树

4.5.1线索树的概念

4.5.2二叉线索树的操作

4.6一般树的表示和遍历

4.6.1一般树的二叉链表示及其与二叉树的关系

4.6.2二叉树、一般树及森林的关系

4.6.3一般树的遍历概念

4.6.4一般树的运算

4.7树的应用

4.7.1分类二叉树

4.7.2堆树

4.7.3树的路径长度和赫夫曼树

4.8二叉树基本算法的程序实现

习题4

第5章图

5.1图的概念

5.1.1图的定义

5.1.2图的术语

5.1.3图的抽象数据类型

5.2图的存储结构

5.2.1邻接矩阵表示法

5.2.2邻接表表示法

5.2.3十字链表

5.2.4邻接多重表

5.3图的遍历

5.3.1深度优先搜索遍历

5.3.2宽度优先搜索遍历

5.3.3图的连通性

5.4最小生成树

5.4.1生成树

5.4.2最小代价生成树

5.5最短路径

5.5.1单源最短路径

5.5.2任意两个顶点之间的路径

5.6拓扑排序

5.6.1有向无环图

5.6.2AOV网的概念

5.6.3AOV网的算法

5.7关键路径

5.7.1AOE的概念

5.7.2关键路径的概念

5.7.3关键路径的算法

习题5

第6章数组、矩阵和广义表

6.1数组的定义

6.1.1数组的逻辑结构

6.1.2数组的抽象数据类型

6.2数组的顺序表示及运算

6.2.1数组的顺序存储结构

6.2.2数组顺序存储结构描述

6.2.3数组顺序存储结构下的操作

6.3矩阵的存储及操作

6.3.1矩阵的定义及操作

6.3.2矩阵的顺序存储

6.3.3特殊矩阵的压缩存储及操作

6.3.4稀疏矩阵的压缩存储及操作

习题6

第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.5选择排序

7.5.1直接选择排序

7.5.2堆排序

7.5.3树形选择排序

7.6归并排序

7.7基数排序

7.7.1用二维数组表示桶

7.7.2用链式存储结构实现桶

7.8内部排序方法比较

7.9外排序

7.9.1外部排序

7.9.2多路平衡归并

习题7

第8章查找

8.1查找的概念

8.2静态查找技术

8.2.1顺序查找

8.2.2二分查找

8.2.3分块查找

8.3动态查找技术

8.3.1平衡二叉树

8.3.2B树

8.3.3B+树

8.4哈希表的查找

8.4.1基本概念

8.4.2构造哈希函数的方法

8.4.3哈希冲突的解决方法

8.4.4哈希表的查找

8.4.5哈希算法

8.4.6哈希表的查找分析

习题8

第9章文件

9.1外部存储设备

9.1.1磁带

9.1.2磁盘

9.1.3光盘

9.1.4闪存

9.2基本概念

9.3顺序文件

9.4索引文件

9.5索引顺序文件

9.6直接存取文件

9.7倒排文件

习题9

附录AVC++ 6.0编译环境介绍

附录B实践内容及要求

附录C数据结构课程实验报告格式范本

参考文献
Copyright(C)清华大学出版社有限公司,All Rights Reserved 京ICP备10035462号 联系我们