数据结构是计算机科学中的核心课程之一,主要研究如何高效地组织和管理数据。这份“耿国华数据结构附录样卷答案”文档涵盖了数据结构的一些基本概念和操作,包括链表、二叉树、散列表、排序、栈和队列等关键知识点。
1. **链表**:链表是一种非顺序存储的数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的引用。题目中提到了单链表和循环链表。单链表的头结点用于初始化链表,循环链表的结点结构与单链表相同,但最后一个节点指向第一个节点,形成循环。
2. **二叉树**:二叉树的每个节点最多有两个子节点。满二叉树是所有层级都完全填满的二叉树,且最后一层的所有节点都尽可能靠左。题目指出,没有度为1的节点的二叉树不一定是满二叉树,这是正确的,因为可能是个完全二叉树。
3. **堆**:堆是一种特殊的树形数据结构,分为大根堆和小根堆,其中大根堆的每个父节点的值都大于或等于其子节点。在一个大根堆中,最小元素通常位于最后一个节点,但题目指出最小元素不一定在这是正确的,因为堆可以通过调整保持堆性质。
4. **图**:图是由顶点和边构成的数据结构,题目提到所有顶点的入度之和等于出度之和,这是图的性质,因为每条边都有一个起点和一个终点。
5. **散列表**:散列表通过散列函数实现快速查找,线性探测法是处理冲突的一种方法,但题目中的说法不正确,同义词在散列表中并不一定相邻。
6. **内部排序**:内部排序是指数据在内存中完成的排序过程,如冒泡排序、快速排序等。
7. **拓扑排序**:拓扑排序是对有向无环图(DAG)的顶点的一种排序,使得对于每一条有向边u->v,u都在v之前。题目中提到的“结点的值是有序排列”是错误的,拓扑排序只关心顶点的顺序,不涉及它们的值。
8. **AOE网**:AOE网是活动-on-edge网络,用于表示项目进度计划,源点到汇点的最长路径代表了工程的最长持续时间。
样卷的题目还涉及了链表的判断(如判断链表是否为空)、循环链表的尾指针特点、链表和数组的优缺点、栈和队列的操作特性、循环队列的元素计数、串的定义、数组的存储和索引计算以及完全二叉树的节点编号等知识点。
对于链表的判断,判断是否为空通常检查头指针的next属性是否为空;循环链表的尾指针指向头结点;链表不支持随机访问;若常用操作是添加和删除最后一个节点,双循环链表最节省时间;线性表存取第i个元素和前驱,顺序表最节省时间;栈的输出序列遵循后进先出原则;队列的输出遵循先进先出原则;循环队列的元素计数需考虑队列的循环特性;串是有限个字符的序列;数组元素的地址计算基于行优先存储。
这些知识点是数据结构学习的基础,理解和掌握它们对于编程和算法设计至关重要。