《数据结构》C语言版-李宛洲著

需积分: 3 1 下载量 70 浏览量 更新于2024-07-27 收藏 1.69MB DOCX 举报
"数据结构 C语言版 - 李宛洲 - 清华大学自动化系 - 第五版 - 2004年5月" 本文档是关于数据结构的C语言实现,由清华大学自动化系的李宛洲教授编著,内容涵盖数据结构的基本概念、线性表、堆栈、队列、非线性数据结构(如树和图)等核心主题。该书特别强调了C语言在数据结构实现中的关键角色,包括结构体、指针和共用体的使用。 首先,书中介绍了数据结构的重要性及其在C语言中的基础,特别是在结构体、指针和共用体的应用上。数据结构定义了数据的组织方式,而C语言提供了强大的底层操作工具来实现这些结构。 接着,详细讲解了线性表,包括顺序表和链表。顺序表直接在内存中连续存储,操作简单但插入和删除效率较低。链表则通过指针链接元素,提供了更大的灵活性。单链表和双链表的实现、操作效率分析以及在处理稀疏矩阵时使用的三元组和十字链表都进行了深入讨论。 堆栈部分,阐述了堆栈的后进先出(LIFO)特性,以及如何进行基本操作(如push和pop)。堆栈与递归的关系,递归与分治算法、递归与递推的比较,以及堆栈在实际问题中的应用(如表达式求值)也得到了充分解释。 队列部分,解释了其先进先出(FIFO)的性质,队列结构以及在实际问题中的应用,例如模拟打印机队列。 对于非线性数据结构,主要讨论了树。书中涵盖了树的基本概念、术语,如内部节点、叶子节点的存储结构。接着,深入到二叉树,包括二叉树的定义、完全二叉树的顺序存储、遍历方法和二叉树的唯一性问题。二叉排序树和穿线二叉树(线索二叉树)也是重点,其中穿线二叉树的中序线索化和遍历方法有详细说明。此外,还介绍了堆的构造和操作,以及哈夫曼树(最佳检索树),包括其构建、算法和应用。 最后,简要提及了图的基本概念,这预示着后续章节将对图的遍历、路径查找等更复杂的话题进行探讨。 这份资料是学习数据结构和C语言实现的理想教材,它系统地介绍了各种数据结构的理论基础和编程实践,对于计算机科学的学习者和开发者来说极具价值。