二叉查詢樹 Java

2021-07-04 15:09:25 字數 1744 閱讀 3273

二叉查詢樹,二叉排序樹,二叉搜尋樹都是一回事兒。

public class binarysearchtree> 

public node(t value)

public node(t value, nodeleft, noderight) }

public binarysearchtree()

public void clear()

public boolean isempty()

/*查詢方法*/

//查詢指定的元素,預設從根節點開始查詢

public boolean contains(t t)

//從某個節點開始查詢元素

public boolean contains(t t, nodenode)

int result=t.compareto(node.value);

if(result>0)

return contains(t,node.right);

else if(result<0)

return contains(t,node.left);

else

return true; }

//求二叉查詢樹樹中的最小值,返回最小值,迭代

public t findmin()

} return temp.value; }

//求二叉查詢樹樹中的最小值,返回最小值,迭代

public t findmax()

}return temp.value;

} //遞迴

public nodefindmin(nodenode)

//迭代插入

public boolean insert(t t)

nodenewnode=new node(t);

nodepointer=root;

while(true)else

}else if(newnode.value.compareto(pointer.value)<0)else

}else

} }//遞迴插入

public void insertdata(t t)

public nodeinsertdata(t t,nodenode)

int result=t.compareto(node.value);

if(result>0)

node.right=insertdata(t,node.right);

else if(result<0)

node.left=insertdata(t,node.left);

else;

return node; }

//遞迴刪除,刪除分三種情況

public void remove(t t)

public noderemove(t t, nodenode)

else

node=(node.left!=null)?node.left:node.right;

return node; }

public nodeget(t t)else if(cur.value.compareto(t)<0)else

} return cur;

} public void inorderreverse()

private void printlrr(nodenode) }

public static void main(string args)

}

Java 實現二叉查詢樹

created by albert.bai on 2014 11 4.public class bitree 實現一顆空的二叉樹 public bitree 遞迴的插入資料 public treenode insert int value 當二叉樹為空時 直接將值賦予root 當value小於等於父...

二叉樹 二叉查詢樹

構建二叉樹,判斷是否為二叉查詢樹,遞迴先序遍歷,非遞迴中序遍歷 include include include include using namespace std 二叉樹結點 struct treenode 鍊錶結點 struct listnode struct tempnodetempnode...

二叉樹 二叉查詢樹

二叉樹 binary tree 一種樹型結構,每個節點最多擁有兩個節點。如下圖 幾種型別的二叉樹 1.full binary tree 每個節點的孩子數 是 0 或者 2.對高度沒有要求。如下圖 2.perfect binary tree 這個就是最完美的樹,顧名思義,所有葉子節點都有相同的深度,並...