| 作者 |
| 张瑞霞 张敬伟 |
| 丛书名 |
| 21世纪高等学校规划教材·计算机科学与技术 |
| 出版社 |
| 清华大学出版社 |
| ISBN |
| 9787302505570 |
| 简要 |
| 简介 |
| 内容简介 本书系统完整地介绍了线性表、栈和队列、树和二叉树、图和字符串等数据结构的抽象数据类型、操作实现和应用实例,并讨论了各种查找技术和排序算法。通过数据结构抽象数据类型定义和接口封装,培养读者的抽象思维能力。书中的算法采用规范完整的C语言描述,读者只需添加主程序就能够运行程序,进而能够在调试层面理解算法,从而跨越抽象和具体之间的鸿沟。本书通过每章开头的两个关键词进行章节主要内容概览,通过大量的图表辅助读者理解复杂的算法过程,通过应用实例和习题中的算法设计题目及应用题目强化、提高读者的应用实践能力。 本书既可作为高等院校计算机类相关专业的教材,也可作为高职院校计算机类相关专业的教材,还可作为计算机爱好者的自学书籍和计算机软件开发的工程技术人员的参考书。 |
| 目录 |
第1章绪论 1.1为什么要学习数据结构 1.2抽象数据类型 1.3数据结构 1.3.1数据结构的基本术语 1.3.2数据结构研究的三要素 1.4算法与算法效率 1.4.1算法举例 1.4.2什么是算法 1.4.3算法评价标准 1.4.4算法描述方法 1.5算法分析 1.5.1算法比较举例 1.5.2时间复杂度分析 1.5.3常见循环的时间复杂度举例 习题 第2章线性表 2.1线性表的概念 2.1.1线性表的定义 2.1.2线性表的抽象数据类型定义 2.1.3顺序表VS链表 2.2顺序表的建立与判空 2.2.1创建空的顺序表 2.2.2判断顺序表为空 2.2.3扩展延伸: 通过调试理解算法 2.3顺序表的插入和删除 2.3.1插入算法 2.3.2删除算法 2.3.3小白实践: 完整示例 2.4顺序表的查找定位 2.4.1查找算法 2.4.2二分查找 2.5单链表的建立与判空 2.5.1建立单链表 2.5.2链表的判空 2.5.3用头插法建立单链表 2.5.4用尾插法建立单链表 2.6单链表的查找 2.7单链表的插入 2.7.1后插算法 2.7.2前插算法 2.8单链表的删除 2.8.1按位置删除 2.8.2按值删除 2.9单循环链表 2.10双链表和双循环链表 2.10.1双链表 2.10.2双循环链表 2.11线性表的应用: 一元多项式的表示和运算 2.12线性表的应用: Josephus问题 2.13动态链接库 2.13.1动态链接库的概念 2.13.2动态链接库的优缺点 2.13.3动态链接库的构建与链接 习题 第3章栈和队列 3.1栈和队列的概念 3.1.1栈和队列的定义 3.1.2栈的抽象数据类型定义 3.1.3栈混洗 3.2顺序栈 3.2.1创建空栈 3.2.2判断栈空 3.2.3进栈 3.2.4出栈 3.2.5取栈顶元素 3.3链栈 3.3.1创建空栈 3.3.2判断栈空 3.3.3进栈 3.3.4出栈 3.3.5取栈顶元素 3.4栈的应用: 进制转换 3.5栈的应用: 括号匹配 3.6栈的应用: 栈与递归 3.7栈的应用: 迷宫 3.8栈的应用: 表达式求值 3.9循环队列 3.9.1创建空队列 3.9.2判断队列是否为空 3.9.3入队 3.9.4出队 3.9.5取队头元素 3.10链队列 3.10.1创建空队列 3.10.2判断队列是否为空 3.10.3入队 3.10.4出队 3.10.5取队头元素 3.11队列的应用: 迷宫 3.12队列的应用: 农夫过河 3.13双端队列 |