出版时间:2009-8 出版社:机械工业出版社 作者:吴小平,马桂媛 编著 页数:263
前言
“数据结构”是计算机及相关专业的一门重要的专业基础课,也是部分理工科专业的选修课程。数据结构课程的主要任务是,研究现实世界中各种数据对象的逻辑结构在计算机中的存储表示以及在不同存储结构上的相应算法,初步掌握算法的时间分析技术和空间分析技术,并通过实际编程训练为开发复杂程序打下良好基础。 数据结构广泛应用于计算机的各个领域。在计算机操作系统、计算机图形学、软件工程、多媒体技术、计算机网络、编译原理、数据库原理和技术、计算机辅助设计、人工智能等课程中普遍使用数据结构的理论和方法来描述和解决问题。因此,学好数据结构课程是学好其他后续计算机课程,特别是计算机软件方面课程的基础,同时也为今后走上工作岗位从事大型计算机软件开发奠定了基础。 本书共分11章。第1章主要介绍数据结构的基本概念和相关术语,并简单介绍了进行算法描述和算法分析的基本方法;第2~5章介绍线性结构(线性表、栈、队列、数组、串)的逻辑特征,存储表示方法和基本操作的实现算法,以及一些应用实例;第6~8章介绍非线性结构(广义表、树、图)的逻辑特征,存储表示方法和基本操作的实现算法,以及应用实例;第9章和第10章分别介绍非数值计算领域中的两种非常重要的操作,即查找和排序;’第11章介绍一些常用文件的逻辑结构和物理结构特征。各章内容都有相对独立的部分,以便针对不同专业或不同层次的需要组织教学。 本书采用简化的c++程序设计语言作为算法的描述语言,与目前多数学校采用c++语言作为教学语言相衔接。但考虑到本书的学习对象主要是低年级学生,因此除了使用类模板描述数据类型以外,只使用了c++相对简单的内容来描述算法,以便于学生理解和接受。 本书的所有算法都已在VC++6.0环境下上机调试通过,但为了节省篇幅,所有算法都以函数形式给出。若读者要运行这些算法,除了需要编写主函数来调用它们以外,还必须包含头文件和添加必要的变量说明。本书选用的例题都针对特定的数据结构,便于学生学习使用数据结构原理解决实际问题的方法。 本书建议理论讲授50~60个学时,上机实践20~30个学时。在实际教学过程中,授课教师可以根据学生的专业特点和不同层次进行适当增删。 由于作者水平有限,书中难免有不妥之处,敬请读者批评指正。
内容概要
本书共分11章。第1章介绍数据结构和算法的概念及相关术语。第2~5章介绍线性结构。第6~8章介绍非线性结构。第9章和第10章分别介绍了查找和排序。第11章介绍了一些常用文件。各章内容都有相对独立的部分,以便针对不同专业或不同层次的需要组织教学。 本书可作为高等院校计算机类专业和相关专业数据结构课程的教材,也可以供从事计算机应用工作的工程技术人员参考。”
书籍目录
出版说明前言第1章 绪论 1.1 数据结构的研究内容 1.2 数据结构的基本概念和相关术语 1.3 算法和算法分析 1.3.1 算法的概念 1.3.2 算法效率和存储量的估算方法 1.4 习题第2章 线性表 2.1 线性表的基本概念 2.2 线性表的顺序存储结构 2.3 线性表的链式存储结构 2.3.1 线性链表 2.3.2 循环链表 2.3.3 双向链表 2.3.4 静态链表 2.4 一元多项式的表示和相加运算 2.5 习题第3章 栈和队列 3.1 栈 3.1.1 栈的概念和抽象数据类型 3.1.2 栈的顺序存储结构 3.1.3 栈的链式存储结构 3.1.4 表达式求值 3.2 队列 3.2.1 队列的概念和抽象数据类型 3.2.2 队列的链式存储结构 3.2.3 队列的顺序存储结构——循环队列 3.3 栈和队列的应用实例 3.3.1 停车场管理 3.3.2 银行业务模拟 3.4 递归 3.4.1 递归的基本概念 3.4.2 递归算法设计 3.4.3 递归过程和递归工作栈 3.5 习题第4章 数组和矩阵压缩存储 4.1 数组的逻辑特点 4.2 数组的存储结构 4.3 矩阵的压缩存储 4.3.1 特殊矩阵的压缩存储方法 4.3.2 稀疏矩阵的概念 4.3.3 稀疏矩阵的三元组表表示 4.3.4 稀疏矩阵的十字链表表示 4.4 习题第5章 串 5.1 串的基本概念 5.2 串的存储结构 5.2.1 串的顺序存储结构 5.2.2 串的链式存储结构 5.3 串操作的实现 5.4 串的模式匹配 5.4.1 简单的模式匹配算法 5.4.2 KMP算法 5.5 建立词索引表 5.6 习题第6章 广义表 6.1 广义表的基本概念 6.2 广义表的存储结构 6.3 广义表的基本运算 6.4 多元多项式的表示 6.5 习题第7章 树 7.1 树的基本概念 7.1.1 树的定义 7.1.2 树的基本术语 7.1.3 树的抽象数据类型 7.2 二叉树的概念和存储结构 7.2.1 二叉树的定义 7.2.2 二叉树的性质 7.2.3 二叉树的存储结构 7.3 二叉树的数据类型 7.4 二叉树的遍历……第8章 图第9章 查找第10章 排序第11章 文件参考文献
章节摘录
随着计算机产业的发展,特别是计算机技术的高速发展和微型计算机的日益普及,计算机系统无论在硬件方面,还是在软件方面都远远超过了人们对它的预料,它已广泛渗透到人类社会的各个领域。现在的计算机已不再局限于处理纯数值计算问题,而更多地用于控制、管理以及数据处理等领域。与此相对应,计算机处理的对象也由纯粹的数值发展到诸如字符、表格、声音、图像、视频等复杂且具有结构的非数值数据。因此,在相应程序的设计过程中,必须研究数据的特性和数据之间存在的内在关系,才能设计出优良的程序,这正是学习本课程的基本目的。“数据结构”是一门综合性的计算机专业基础课,是介于数学、计算机硬件和计算机软件之问的一门核心课程,其内容不仅是一般程序设计(特别是非数值计算程序设计)的基础,而且是设计编译程序、操作系统、数据库系统以及其他复杂程序的重要基础。 1.1 数据结构的研究内容 一般来说,使用计算机解决问题大致需要以下几个步骤:首先从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法,最后编写出程序,进行测试和修改,直至得到最终解答。在解决问题的过程中,寻求数学模型的实质是通过分析,从问题中提取操作的对象,并找到这些对象之间的关系,然后用数学语言加以描述。然而,对非数值计算问题,往往很难用一个或几个数学方程来描述对象之间的关系,只能采用数据结构方法进行描述。 ……
图书封面
评论、评分、阅读与下载