- 二叉树中搜索某个元素的算法。
/**
* 查找二叉树中元素
* @param root
* @param data
* @return
*/
Boolean FinadInBT(BT root, int data) {
Boolean temp;
if (root == null)
return false;
else {
if (data == root.getData()) {
return true;
} else {
temp = FinadInBT(root.getLeft(), data);
if (temp == true)
return temp;
else
return (FinadInBT(root.getRight(), data));
}
}
return 0;
}
- 将一个元素插入二叉树的算法
/**
* 二叉树种插入元素
* @param root
* @param data
*/
void InsertInBT(BT root,int data){
//需要一个新结点
//一个队列
//一个指针
LLQueue Q=new LLLQueue();
BT newnode=new BT();
BT temp;
newnode.setLeft(null);
newnode.setRight(null);
Q.enQueue(root);
if (!Q.isEmpty) {
temp=Q.deQueue();
if(temp.getLeft()){
Q.enQueue(temp.getLeft())
}else {
temp.setLeft(newnode);
Q.deleteQueue();
return;
}
if (temp.getRight()) {
Q.enQueue(temp.getRight())
}else {
temp.setRight(newnode);
Q.deleteQueue();
return;
}
}
Q.deleteQueue();
}
获取二叉树结点个数的算法
/**
* 获取二叉树中结点个数
*/
int NumOfBT(BT root){
if (root==null) {
return 0;
}
else {
return(NumOfBT(root.getLeft())+1+NumOfBT(root.getRight()));
}
}