|
編輯推薦: |
数据结构是计算机和信息技术类等相关专业的一门重要的专业基础课程。随着当前高等教育的发展和社会对各类信息人才需求的不断变化,对于数据结构课程的内容提出了更高、更全面的要求。数据结构的概念既抽象又具体,抽象在于可以脱离计算机而存在,具体则在于可用程序代码在计算机中加以实现,这对于教材的内容也提出了更高的要求。本书结合数据结构课程的发展现状和趋势,具有难度适中、结构合理、应用性强的特点。
|
內容簡介: |
数据结构是计算机和信息技术类等相关专业的一门重要的专业基础课程,数据结构及其处理算法是设计与实现系统软件和大型应用软件的重要基础,结合数据结构课程的现状和发展趋势,本教材具有难度适中、结构合理、应用性强的特点。
|
關於作者: |
自参加工作以来,一直从事教学及科研工作,担任电话机、手机、电视机、VCD、计算机网络设计、计算机网站建设等专业课教学工作。在教学实践中形成了激趣、启思、求活、务实的教学风格和注重启迪、鼓励创新的教学特点,教学效果优秀,受到学生欢迎。
|
目錄:
|
第1 章 数据结构基础 .................................................................................... 1
1.1 数据结构的基本概念 .................................................................................................... 2
1.1.1 数据结构的研究内容 ......................................................................................... 2
1.1.2 基本概念和术语 ................................................................................................. 5
1.1.3 数据结构课程的内容 ......................................................................................... 8
1.2 数据类型和抽象数据类型 ............................................................................................ 9
1.2.1 数据类型 ............................................................................................................. 9
1.2.2 抽象数据类型 ..................................................................................................... 9
1.3 算法和算法分析 .......................................................................................................... 10
1.3.1 算法特性 ........................................................................................................... 11
1.3.2 算法描述 ........................................................................................................... 12
1.3.3 算法性能分析 ................................................................................................... 12
1.4 本章小结 ...................................................................................................................... 15
习题 ....................................................................................................................................... 16
编程实例 ............................................................................................................................... 18
第2 章 线性表 ............................................................................................. 19
2.1 线性表的定义 .............................................................................................................. 20
2.1.1 线性表的逻辑结构 ........................................................................................... 20
2.1.2 线性表的抽象数据类型 ................................................................................... 20
2.2 线性表的顺序存储及实现 .......................................................................................... 22
2.2.1 顺序表 ............................................................................................................... 22
2.2.2 顺序表的基本运算 ........................................................................................... 23
2.3 线性表的链式存储及实现 .......................................................................................... 28
vi | 数据结构案例教程(C 语言版)
2.3.1 单链表 ............................................................................................................... 29
2.3.2 单链表的基本运算 ........................................................................................... 30
2.3.3 循环链表 ........................................................................................................... 36
2.3.4 双向链表 ........................................................................................................... 37
2.3.5 静态链表 ........................................................................................................... 39
2.3.6 单链表应用举例 ............................................................................................... 40
2.4 顺序表与链表的比较 .................................................................................................. 43
2.5 本章小结 ...................................................................................................................... 44
习题 ....................................................................................................................................... 44
编程实例 ............................................................................................................................... 46
第3 章 栈和队列 ......................................................................................... 48
3.1 栈 .................................................................................................................................. 49
3.1.1 栈的定义 ........................................................................................................... 49
3.1.2 栈的表示和实现 ............................................................................................... 50
3.2 栈的应用 ...................................................................................................................... 55
3.2.1 数制转换问题 ................................................................................................... 56
3.2.2 括号匹配检验 ................................................................................................... 57
3.2.3 表达式求值 ....................................................................................................... 58
3.2.4 栈与递归 ........................................................................................................... 61
3.3 队列 .............................................................................................................................. 64
3.3.1 队列的定义 ....................................................................................................... 64
3.3.2 队列的表示和实现 ........................................................................................... 65
3.4 队列的应用 .................................................................................................................. 71
3.5 本章小结 ...................................................................................................................... 73
习题 ....................................................................................................................................... 74
编程实例 ............................................................................................................................... 75
第4 章 串 .................................................................................................... 79
4.1 串的定义和基本运算 .................................................................................................. 80
4.1.1 串的定义 ........................................................................................................... 80
4.1.2 串的基本操作 ................................................................................................... 81
4.2 串的存储结构 .............................................................................................................. 82
4.2.1 定长顺序存储 ................................................................................................... 82
4.2.2 堆存储 ............................................................................................................... 83
目 录 | vii
4.2.3 链式存储 ........................................................................................................... 85
4.3 串的运算实现 .............................................................................................................. 86
4.4 串的模式匹配 .............................................................................................................. 90
4.4.1 BF 算法 ............................................................................................................. 90
4.4.2 KMP 算法 ......................................................................................................... 92
4.5
|
內容試閱:
|
数据结构是计算机和信息技术类等相关专业的一门重要的专业基础课程。随着当前高
等教育的发展和社会对各类信息人才需求的不断变化,对于数据结构课程的内容提出了更
高、更全面的要求。数据结构的概念既抽象又具体,抽象在于可以脱离计算机而存在,具
体则在于可用程序代码在计算机中加以实现,这对于教材的内容也提出了更高的要求。本
书结合数据结构课程的发展现状和趋势,具有难度适中、结构合理、应用性强的特点。
全书共9 章内容,其中第1 章数据结构基础,综述数据结构的基本概念,主要叙述数
据结构和抽象数据类型的定义与关系,算法和算法分析;第2 章至第5 章主要讨论几种基
本的线性结构,即线性表、栈和队列、串、数组和广义表的数据结构及其应用;第6 章和
第7 章主要介绍非线性结构,即树和二叉树、图的数据结构及其应用;第8 章和第9 章分
别讨论两种基本的操作,即查找和排序,主要介绍各种实现方法和高效性的分析及比较。
本书突出了抽象数据类型的概念,对每一类数据结构,均分别给出相应的抽象数据类型的
定义。
本书在内容组织和编排上,力求理论与实际应用紧密结合,更加突出应用性。本书有
以下3 个主要特点。
(1)内容层次分明、结构清晰。在内容的选取上坚持学以致用、学用结合的原则,
省略一些纯理论的推导和烦琐的数学证明,强调最基础、最适用的设计思想及实现技术。
(2)遵从由浅入深的原则,侧重应用性,把握理论深度,通过大量的例题、算法和
每一章给出的习题及编程实例,突出对学习者应用能力的培养。
(3)内容丰富、语言通俗易懂、表述严谨、案例丰富、适用面广。
本书既可作为高等院校软件工程、计算机科学与技术、通信工程等信息类专业本(专)
科学生的教材,也可作为软件设计人员学习参考书。
全书采用C 语言作为数据结构和算法的描述语言,对数据结构的定义和算法描述详细,
代码注释完整,便于初学者模仿训练,循序渐进,稳步提高。
iv | 数据结构案例教程(C 语言版)
本书的第1 章至第3 章、第6 章至第9 章由程海英编写,第4 章和第5 章由彭文艺编
写,由程海英统一定稿。
本书在编写过程中,得到了许多专家和众多院校数据结构任课教师的大力支持和帮
助,提出了许多中肯的意见和很好的建议。在此表示衷心的感谢!
由于时间仓促及编者水平有限,书中难免有疏漏和不妥之处,恳请读者及同行批评指
正。
编 者
2019 年9 月
|
|