COMP 2014J LEARNING PROCESS
本文最后更新于:2024年10月25日 下午
Lecture 0
Lecture: David Lillis
2 Assignment (40%) and Written Final Exam(60%)
Lecture 1
Tree
树是按层构造的数据结构,每个数据间的关系是父与子。-
- 数据储存在Node中
- 每个节点有且仅有一个父节点(除root节点),可以有任意数量的子节点。
术语
Root of tree: A 头节点,没有父节点
Parent of H: F
Children of J : K, L
Siblings of F: G 姊妹节点
Internal Nodes: A, B, C, F, G, I, J (至少有一个子节点)
External Nodes: D, E, H, K, L (没有子节点)
Ancestor of I: A, C, G, I (自己也可以是自己的祖先)
Descendant of I: I, J, K, L (自己也是自己的后代)
Edge: (U,V) U 是 V 的父节点
(A, B), (G, I), BUT (A, G), (F, C) 不是Edge.
Path: 从上到下的有序路径
(A, C, G, I)
Depth of a node: 该节点祖先的个数,不包括该节点。Depth(A) = 0 Depth(G) = 2
Degree of a node: 该节点子节点的个数。degree(A) = 2, degree(G) = 1
Height of a tree: 树的层数 height(T) = 5. 最高的节点高度就是树的层数.
Subtree of tree T rooted at node v : 子树

二叉树
最多允许有两个子节点,分为左子节点和右子节点,左节点在右节点之前。
真二叉树(Proper Binary Tree): 节点的度为0或2
通过将外部节点扩展为内部节点来实现树
只有内部节点存储数据,外部节点为空
关键操作
expandExternal(p, e)
创建两个新的空位置,并将它们作为p的左右子元素添加,并将元素e存储在p处。如果p不是外部的,则会发生错误。remove(p)
如果p的左子元素是外部的,则删除它和p并用右子元素替换p。如果右子节点是外部的,删除它和p并用左子节点替换它。如果两个子节点都在内部或p在外部,则会出错。
如果一个节点的两个子节点都是内部节点,则无法删除。朴素的理解,删除后无法确定两个姊妹节点的关系。