数据结构(C++版)(第2版)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 叶核亚 编著
出 版 社: 电子工业出版社
出版时间: 2009-1-1字数: 512000版次:页数: 307印刷时间: 2009/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121080043包装: 平装内容简介
本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法。内容涉及的广度和深度符合计算机专业本科的基本要求,体现了本科教学的培养目标。
本书采用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
实验1算法设计与分析
第2章线性表
2.1线性表抽象数据类型
2.2线性表的顺序表示和实现
2.3线性表的链式表示和实现
2.3.1线性表的链式存储结构
2.3.2单链表
2.3.3双链表
习题2
实验2线性表顺序存储结构和链式存储结构的基本操作
第3章串
3.1串抽象数据类型
3.1.1串的基本概念
3.1.2串抽象数据类型
3.2串的表示和实现
3.2.1串的存储结构
3.2.2字符串类
3.3串的模式匹配
3.3.1朴素的模式匹配(Brute—Force)算法
3.3.2无回溯的模式匹配(KMP)算法
习题3
实验3串的基本操作及模式匹配算法
第4章栈和队列
4.1栈
4.1.1栈抽象数据类型
4.1.2顺序栈
4.1.3链式栈
4.1.4栈的应用
4.2队列
4.2.1队列抽象数据类型
4.2.2顺序队列
4.2.3链式队列
4.2.4队列的应用
4.3优先队列
4.4递归
习题4
实验4栈和队列以及递归算法
第5章数组和广义表
5.1数组
5.1.1一维数组
5.1.2多维数组
5.2特殊矩阵的压缩存储
5.2.1对称(三角)矩阵的存储
5.2.2稀疏矩阵的压缩存储
5.3广义表
5.3.1广义表抽象数据类型
5.3.2广义表的存储结构
习题5
实验5矩阵的存储和运算
第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二叉树抽象数据类型
……
第7章图
第8章查找
第9章排序
第10章综合应用设计
第11章Visual C++集成开发环境
附录
参考文献
书摘插图
第1章 绪论
计算机数据处理的前提是数据组织,如何有效地组织数据和处理数据是软件设计的基本内容,也是“数据结构”课程的基本内容。
作为绪论,本章勾勒数据结构课程的一个轮廓,说明数据结构课程的目的、任务和主要内容。本章主要介绍数据结构概念所包含的数据逻辑结构、数据存储结构和数据操作等,介、绍抽象数据类型概念,介绍算法概念、算法设计目标、算法描述和算法分析方法。
1.1 数据结构的基本概念
1.1.1 为什么要学习数据结构
软件设计是计算机学科的核心内容之一。进行软件设计时要考虑的首要问题是数据的表示、组织和处理方法,这直接关系到软件的工程化程度和软件的运行效率。
随着计算机技术的飞速发展,计算机应用从早期的科学计算扩大到过程控制、管理和数据处理等领域。计算机处理的对象也从简单的数值数据,发展到各种多媒体数据。软件系统处理的数据量越来越大,数据的结构也越来越复杂。因此,针对实际问题,如何合理地组织数据,如何建立合适的数据结构,如何设计好的算法,是软件设计的重要问题,而这些正是“数据结构”课程讨论的主要内容。
……