出版时间:2009-9 出版社:清华大学出版社 作者:赵波 主编 页数:270
前言
“数据结构”是计算机及相关专业的专业基础课和核心课。随着计算机应用范围逐渐深入到各个学科领域,在培养适应社会需求的多学科、复合型、应用型人才的过程中,本课程已经成为其他很多专业的热门选修课程。“数据结构”所研究的知识内容和技术方法,不论对学习计算机学科的其他相关课程,还是对从事软件设计和开发工作,都是重要的理论基础。 本书主要讨论数据处理问题中各种经典的逻辑结构及特点;数据在计算机中的存储结构及常用的存储方法;定义在逻辑结构上、实现在存储结构上的各种典型运算的算法。通过本书的学习,能够熟练掌握三大经典结构(线性表、树、图)的逻辑特征,能够采用常用的存储方法设计出合理的存储结构,并对典型运算设计多种实现算法。在深入理解和掌握本书内容的基础上,训练复杂程序设计的能力,并学会运用基本理论和基础知识解决实际问题。 教材中共包含8章内容:第l章绪论中主要介绍数据结构的概念及数据结构研究的三方面内容涉及的基本概念;第2章和第3章介绍了三种最基本的线性结构,即线性表、栈和队列;第4章至第6章叙述非线性结构,分别是多维数组、广义表、树和图;第7章和第8章讨论数据处理过程中使用频率最高的两种典型运算一一排序和查找。鉴于目前“C语言程序设计”已经普遍地成为数据结构的先修课,全书采用C语言作为数据结构和算法的描述工具。利用数组、结构体、指针等重要数据类型结合C函数,完成书中所有基本运算的实现算法。在一些重点部分,书中还给出了简单应用举例的完整C程序,旨在掌握如何利用数据结构中基本运算来解决实际问题。书中所有的算法都经过上机调试通过。 本书在内容选取上符合复合型、应用型人才培养目标的要求,遵循教学规律和认知规律。组织编排上体现先理论、后应用、理论与应用相结合的原则,注重课程内容的前后联系,理清来龙去脉,强调条理性和系统性,兼顾学科的广度和深度。本书结构清晰,层次分明,深入浅出,通俗易懂,适用面广。可以作为普通高等院校计算机学科和信息类学科本科和专科教材,也可以作为其他理工类专业的选修教材,讲授学时可以为64~80学时。教师可以根据本校的教学大纲及学时安排,选讲部分内容。 本书的主编一直从事数据结构的教学和研究工作,参加编著过多本教材。本书是作者多年教学经验的结晶,在难点内容的叙述及讲解方法上有独到之处。主编完成全书的整体策划,并承担统稿工作,也参与了部分章节的编写。其他作者分工如下:第1章、第2章、第3章由郑巍编写;第4章、第5章由董靓瑜编写;第6章由李静编写;第7章、第8章由霍利编写。编写过程中参考了大量的著作、教材等资料,在此一并表示感谢。 虽然全体参编人员都尽心尽力、力求完美,但由于时间仓促、水平有限,书中难免出现遗漏或不妥之处,敬请广大读者不吝指正,不胜感激。
内容概要
《数据结构实用教程(C语言版)》是为“数据结构”课程编写的教材。书中首先介绍了数据结构的概念及数据结构研究的逻辑结构、存储结构及运算三方面内容涉及的基本概念;然后针对经典的数据结构(即线性表、栈、队列、多维数组、广义表、树和图)的逻辑特征、常用的存储方式及各种基本运算的实现算法作了详细阐述;最后讨论了两种典型运算——排序和查找的各种实现方法。全书采用C语言作为数据结构和算法的描述工具。在一些重点部分,还给出了简单应用举例的完整c程序。 本书结构清晰,层次分明,深入浅出,通俗易懂,适用面广。可以作为普通高等院校计算机学科和信息类学科本科或专科教材,也可以作为其他理工类专业的选修教材。
书籍目录
第1章 绪论 1.1 基本术语 1.2 数据结构的定义及研究的内容 1.2.1 数据的逻辑结构 1.2.2 数据的存储结构 1.2.3 数据的运算 1.3 算法 1.3.1 算法的概念及特性 1.3.2 算法的描述 1.3.3 算法的评价 1.4 学习数据结构的意义和目的 习题第2章 线性表 2.1 线性表的定义及运算 2.1.1 线性表的定义及逻辑特征 2.1.2 线性表上运算的定义 2.1.3 线性表的存储结构 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.6 单链表的应用举例 2.4 顺序表和链表的比较 习题第3章 栈和队列 3.1 栈 3.1.1 栈的定义及运算 3.1.2 顺序栈及运算的实现 3.1.3 链栈及运算的实现 3.1.4 栈的应用 3.1.5 栈与递归 3.2 队列 3.2.1 队列的定义及运算 3.2.2 顺序队列及运算的实现 3.2.3 链队列及运算的实现 3.3 栈与队列的比较 习题第4章 多维数组及广义表 4.1 多维数组 4.2 矩阵的压缩存储 4.2.1 特殊矩阵 4.2.2 稀疏矩阵 4.3 广义表 4.3.1 广义表的定义 4.3.2 广义表的运算 习题第5章 树 5.1 树的定义 5.2 二叉树 5.2.1 二叉树的定义及性质 5.2.2 二叉树的存储 5.2.3 二叉树的遍历及实现算法 5.3 线索二叉树 5.3.1 中序线索二叉树的定义 5.3.2 中序线索二叉树上遍历的实现 5.3.3 利用中序线索实现前序遍历和后序遍历 5.4 树和森林 5.4.1 树和森林的遍历 5.4.2 森林与二叉树的转换 ……第6章 图第7章 排序第8章 查找参考文献
章节摘录
1.2.2数据的存储结构 数据的存储结构(Storage Structure),是指数据的逻辑结构到计算机存储器的映射。对于数据的逻辑结构Data Struture=(D,s),在映射中,一方面要将数据集D中的数据元素存放到存储器中,另一方面还要体现关系集S,常见的体现关系s的方式有显示和隐含两种。 计算机存储空间是以字节为单位进行编址的,地址是从零开始的、连续的正整数。对计算机存储器存取操作的基本单位是字节(byte),每个字节都有唯一的地址标识。用户使用存储器通常是以存储单元为单位,每个存储单元由若干个连续的字节构成,一个单元可以存储一个数据元素,单元的大小取决于数据元素的类型。每个存储单元都有唯一的地址标识(即若干个连续字节的首地址),用户可以通过每个存储单元的地址实现对存储单元中数据元素的访问。数据可以存储在连续的存储单元中也可以存储在不连续的存储单元中。若干地址连续的存储单元称为一个存储区域,也可以说存储区域是存储单元的线性序列。 完成数据的逻辑结构到存储区域的映射可以有很多的方法,最常用的实现数据存储结构的方法有如下4种。
图书封面
评论、评分、阅读与下载