数据结构 C语言描述 第3版
作者: 王晓东编著
出版时间:2019年版
内容简介
本书是国家精品课程教材,以教育部计算机科学与技术教学指导委员会发布的"高等学校计算机科学与技术本科专业规范”为依据,以基本数据结构为知识单元而编写。全书共分12章,包括引论、表、栈、队列、排序与选择、树、图、集合、符号表、字典、优先队列、并查集等。 全书采用C语言作为描述语言,内容丰富,叙述简明,理论与实践并重,每章设有应用举例和算法实验题,并为任课教师免费提供电子课件和课程实验用数据。 读者对象:可作为高等学校计算机、电子信息、信息与计算科学、信息管理与信息系统等专业的数据结构课程教材,也适合工程技术人员和自学者学习参考。
目录
第1 章 引论 ············································································································································1
1.1 算法及其复杂性的概念 ··········································································································1
1.1.1 算法与程序 ························································································································1
1.1.2 算法复杂性的概念 ·············································································································1
1.1.3 算法复杂性的渐近性态·······································································································3
1.2 算法的表达与数据表示 ··········································································································5
1.2.1 问题求解 ···························································································································5
1.2.2 表达算法的抽象机制 ··········································································································5
1.3 抽象数据类型 ··························································································································8
1.3.1 抽象数据类型的基本概念 ···································································································8
1.3.2 使用抽象数据类型的好处 ···································································································9
1.4 数据结构、数据类型和抽象数据类型 ··············································································· 10
1.5 用C 语言描述数据结构与算法 ··························································································· 11
1.5.1 变量和指针 ······················································································································ 11
1.5.2 函数与参数传递 ·············································································································· 12
1.5.3 结构 ······························································································································· 13
1.5.4 动态存储分配 ················································································································· 14
1.6 递归 ········································································································································ 15
1.6.1 递归的基本概念 ·············································································································· 15
1.6.2 间接递归 ························································································································ 17
本章小结 ········································································································································· 18
习题1 ·············································································································································· 18
算法实验题1 ·································································································································· 19
第2 章 表 ············································································································································· 21
2.1 表的基本概念 ······················································································································· 21
2.2 用数组实现表 ······················································································································· 22
2.3 用指针实现表 ······················································································································· 26
2.4 用间接寻址方法实现表 ······································································································· 30
2.5 用游标实现表 ······················································································································· 32
2.6 循环链表 ································································································································ 37
2.7 双链表 ··································································································································