二叉树
来源:互联网 发布:企业社交网络 编辑:程序博客网 时间:2024/05/21 15:41
二叉树:
(1)相关的概率:
- 双亲
- 兄弟
- 祖先
- 后代
- 子树
- 结点的左子树和右子树
- 结点的深度
- 树的深度(高度)
- 满二叉树:满二叉树一定是完全二叉树。
- 完全二叉树:叶子结点数最多为2^n,总的结点数最多2^(n+1)-1 .
- 根结点:array[0].
- 双亲的位置:[(i-1)/2].
- 左孩子:[2i+1].
- 右孩子:[2i+2].
- 前序遍历:根->左->右。
- 中序遍历:左->根->右。
- 后序遍历:左->右->根。
- 使用缩排打印一棵树以显示深度:使用前序遍历。
- 全序语义的定义:一个类的全序语义要定义6种比较操作符(==,!=,>,<,>=,<=),以形成符合以下要求的全序:
- 等同性
- 完全性
- 一致性
- 传递性
2.每个结点n都要遵循下面这两个规则:
- n的左子树的每个结点的元素小于等于结点n的元素。
- n的右子树的每个结点的元素大于等于结点n的元素。
- 是一棵完全二叉树。
- 每个结点的元素必须大于或者等于该结点的孩子结点元素。
- 用数组实现比用结点类(链表)实现简单,因为堆是一棵完全二叉树。可以实现一个有效的优先队列。
- 堆中插入元素:向上重排。
- 堆中删除元素:向下重排。