数据结构(C语言描述)

节选

[

《数据结构(李素若)(C语言描述)》介绍了数据结构的基本概念和基本算法。全书共11章,主要内容包括:绪论、线性表、栈和队列、串、数组和广义表、树、图、查找、内排、文件和上机实验等。全书内容深入浅出,条理清晰,概念清楚,逻辑推理严谨,内容翔实,既注重数据结构和算法原理,又十分强调程序设计训练。书中算法都配有完整的C程序,程序结构清晰,构思精巧,所有程序都已在Win-TC2.0下编译通过并能正确运行,它们既是学习数据结构和算法的很好示例,也是很好的程序设计示例。《数据结构(李素若)(C语言描述)》配有大量的实例和图示,并有丰富的习题,适于自学。
《数据结构(李素若)(C语言描述)》是供普通高等院校计算机科学与技术专业本、专科学生使用的教材,也可供从事计算机工作者和其他希望学习数据结构的人员参考。

]

相关资料

[

第1章 绪论
“数据结构”作为一门独立的课程在国外是从1968年才开始设立的。在这之前,它的某些内容曾在其他课程,如表处理语言中有所阐述。1968年在美国一些大学的计算机系的教学计划中,虽然把数据结构规定为一门课程,但对课程的范围仍没有作明确规定。当时,数据结构几乎和图论,特别是和表、树的理论为同义语。随后,数据结构这个概念扩充到包括网络、集合代数论、格、关系等方面,从而变成了现在称之为“离散结构”的内容。然而,由于数据必须在计算机中进行处理,因此,不仅考虑数据本身的数学性质,还必须考虑数据的存储结构,这就进一步扩大了数据结构的内容。近年来,随着数据库系统的不断发展,在“数据结构”课程中又增加了文件管理(特别是大型文件的组织等)的内容。
1968年美国唐.欧。克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作,从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,结构程序设计成为程序设计方法学的主要内容,人们就越来越重视数据结构,并认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。从20世纪60年代中期到80年代初,各种版本的数据结构著作相继出现。
目前,在我国数据结构已经不仅仅是计算机专业教学计划中的核心课程之一,也是其他非计算机专业的主要选修课程之一。
1.1 什么是数据结构
什么是数据结构?这是一个难以直接回答的问题。一般来说,用计算机解决一个具体问题时,大致需要经过下列几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法(algorithm),最后编出程序、进行测试、调整直至得到最终解答。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。为了说明这个问题,首先举一个例子,然后再给出明确的含义。 假定有一个学生通讯录,记录了某校全体学生的姓名和相应住址,现在要写一个算法,要求当给定任何一个学生的姓名时,该算法能够查出该学生的住址。这样一个算法的设计将完全取决于通讯录中的学生姓名及相应的住址是如何组织的,以及计算机是怎样存储通讯录中的信息的。 如果通讯录中的学生姓名是随意排列的,其次序没有任何规律,那么当给定一个姓名时,则只能对通讯录从头开始逐个与给定的姓名比较,顺序查对,直至找到

]

本书特色

[

《数据结构(李素若)(C语言描述)》针对应用型本科和高职高专学生的特点,结合编者多年的教学和编程实践经验,力图用生动、通俗易懂的语言,并结合大量的算法实例来讲解各个知识点,便于读者理解和掌握。
《数据结构(李素若)(C语言描述)》通过各种实例具体讲解如何运用各种数据结构和算法设计方法,使学生不但可以印证许多基本概念,而且能加深理解,以激发学生的学习兴趣,书中所有实例程序都己在Win-T02.0下编译通过并能正确运行。
《数据结构(李素若)(C语言描述)》每章都配有小结和习题,便于读者掌握各章的重点和难点,并进行必要的训练;为了方便学生上机实训练习,《数据结构(李素若)(C语言描述)》还专门设计了8套上机实验题,供学生在每章学习过后上机练习,巩固所学知识。

]

目录

第1章 绪论1.1 什么是数据结构1.2 基本概念和常用术语1.3 数据抽象和抽象数据类型1.3.1 数据抽象1.3.2 抽象数据类型1.3.3 抽象数据类型描述和实现1.4 算法和算法分析1.4.1 算法及其性能标准1.4.2 算法时间复杂度和渐近时间复杂度1.4.3 算法的空间复杂度小结习题第2章 线性表2.1 线性表概念2.2 线性表的顺序表示和实现2.2.1 线性表的顺序存储结构2.2.2 线性表在顺序存储结构下的运算2.3 线性表的链式表示和实现2.3.1 线性链表2.3.2 循环链表2.3.3 双向循环链表2.3.4 顺序表和链表的比较2.4 一元多项式的表示及相加小结习题第3章 栈和队列3.1 栈3.1.1 栈的定义及其运算3.1.2 顺序栈3.1.3 多栈共享邻接空间3.1.4 链栈3.1.5 栈的应用举例3.1.6 栈与递归的实现3.2 队列3.2.1 队列的定义3.2.2顺序队列3.2.3 链队列3.2.4 队列应用举例小结习题第4章 串4.1 串的类型定义4.2 串的定长顺序存储4.3 串的堆存储结构4.3.1 串名存储映像4.3.2 堆存储结构4.3.3 基于堆结构的基本运算4.4 串的块链存储结构4.5 模式匹配4.6 串的应用举例——正文编辑小结习题第5章 数组和广义表5.1 数组类型的定义5.2 数组顺序存储和实现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.5.3 广义表基本操作的实现小结习题第6章 树6.1 树的基本概念6.1.1 树的定义6.1.2 树的逻辑表示方法6.1.3 树的基本术语6.1.4 树的抽象数据类型定义6.1.5 树的存储结构6.2 二叉树的概念和性质6.2.1 二叉树的概念6.2.2 二叉树的性质6.2.3 二叉树与树、森林之间的转换6.3 二叉树的存储结构6.3.1 二叉树的顺序存储结构6.3.2 二叉树的链式存储结构6.4 二叉树的遍历6.4.1 二叉树遍历的概念6.4.2 二叉树遍历递归算法6.4.3 二叉树遍历非递归算法6.5 二叉树的基本运算及其实现6.5.1 二叉树的基本运算6.5.2 二叉树的基本运算算法实现6.6 二叉树的构造6.7 线索二叉树6.7.1 线索二叉树的概念6.7.2 线索化二叉树6.7.3 遍历线索化二叉树6.8 哈夫曼树6.8.1 哈夫曼树的概述6.8.2 哈夫曼树的构造算法6.8.3 哈夫曼编码小结习题第7章 图7.1 图的基本概念7.1.1 图的定义7.1.2 图的基本术语7.2 图的存储结构7.2.1 邻接矩阵存储方法7.2.2 邻接表存储方法7.2.3 十字邻接表存储方法7.2.4 邻接多重表存储方法7.3 图的遍历7.3.1 图的遍历的概念7.3.2 深度优先搜索遍历7.3.3 广度优先搜索遍历7.3.4 非连通图的遍历7.4 生成树和*小生成树7.4.1 生成树的概念7.4.2 *小生成树的定义7.4.3 无向图的连通分量和生成树7.4.4 有向图的强连通分量7.4.5 普里姆算法7.4.6 克鲁斯卡尔算法7.5 *短路径7.5.1 路径的概念7.5.2 从一个顶点到其余各项点的*短路径7.5.3每对顶点之间的*短路径7.6 拓扑排序7.7 AOE网与关键路径小结习题第8章 查找8.1 查找的基本概念8.2 线性表的查找8.2.1 顺序查找8.2.2 二分查找8.2.3 分块查找8.3 树表的查找8.3.1 二叉排序树8.3.2 平衡二叉树8.3.3 B-树8.3.4 B+树8.4 哈希表查找8.4.1 哈希表的基本概念8.4.2 哈希函数构造方法8.4.3 哈希冲突解决方法8.4.4 哈希表上的运算小结习题第9章 内排序9.1 排序的基本概念9.2 插入排序9.2.1 直接插入排序9.2.2 希尔排序9.3 交换排序第10章 文件第11章 上机实验题参考文献

封面

数据结构(C语言描述)

书名:数据结构(C语言描述)

作者:李素若等编著

页数:273 页

定价:¥30.0

出版社:化学工业出版社

出版日期:2009-03-01

ISBN:9787122047281

PDF电子书大小:31MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注