数据结构教程(java语言描述)徐孝凯主编----复习摘要05
第五章 树和二叉树
树的性质:
1。树中的结点数等于所有结点数的度数加1。
2。度为k的树中第i层上至多有k^(i-1)个结点(i>=1)。
3。深度为h的k叉树至多有(k^h-1)/(k-1)个结点。
4。具有n个结点的k叉树的最小深度为...
二叉树的性质
1。二叉树上终端结点数等于双分支结点数加1。
2。二叉树上第i层上至多有2^(i-1)个结点(i>=1)。
3。深度为h的二叉树至多有2^(h-1)个结点。
4。具有n个结点的完全二叉树的深度为...
二叉树的链接存储结构
结点类型定义
public class BTreeNode{
Object element;
BTreeNode left,right;
public BTreeNode(Object obj) {
element = obj;left =right=null;
}
public BTreeNode(Object obj,BTreeNode lt,BTreeNode rt){
element = obj;left = lt;right = rt;
}
}
链接存储的二叉树类
public class linkBinaryTree implements BinaryTree{
protected BTreeNode root; //定义可继承的二叉树的树根指针(引用)
public linkBinaryTree(){
root = null;
}
//操作
public BTreeNode getRoot(){
return root;
}
...
}
按层次遍历的时候需要使用一个队列
二叉搜索树的链接存储类的实现
public class linkBinarySearchTree extends linkBinaryTree implements BinarySearchTree{
public linkBinarySearchTree(){
super();
}
public Object find(final Object obj){}
public Object update(final Object obj){}
public boolean insert(final Object obj){}
public boolean delete(final Object obj){}
}
堆分为大根堆和小根堆
public class sequenceHeap implements Heap{
final int maxSize = 10; //数组初始长度
private Object[] heapArray; //数组声明
private int length; //当前堆的实际长度
//操作
public sequenceHeap(){
length = 0;
heapArray = new Object[maxSize];
}
public sequenceHeap(int n){
}
....
}