public class BiTree {
private BiTreeNode root;
public BiTree() {
this.root = null;
}
public BiTree(BiTreeNode root) {
this.root = root;
}
public BiTree(String postOrder,String inOrder, int postIndex, int inIndex, int count) {
if (count > 0) {
char r = postOrder.charAt(postIndex);
int i = 0;
for (; i < count; i ++)
if (r == inOrder.charAt(i + inIndex))
break;
root = new BiTreeNode(r);
root.setLchild(new BiTree(postOrder, inOrder, postIndex + 1, inIndex, i).root);
root.setRchild(new BiTree(postOrder, inOrder, postIndex + i + 1,
inIndex + i + 1, count - i - 1).root);
}
}
//先根遍歷二叉樹的遞回演算法
public void preRootTraverse(BiTreeNode T){
if (T!= null){
System.out.print(T.getData());
preRootTraverse(T.getLchild());
preRootTraverse(T.getRchild());
}
}
//中根遍歷二叉樹的遞回演算法
public void inRootTraverse(BiTreeNode T){
if (T!= null) {
inRootTraverse(T.getLchild());
System.out.print(T.getData());
inRootTraverse(T.getRchild());
}
}
//后根遍歷二叉樹的遞回演算法
public void postRootTraverse(BiTreeNode T) {
if (T != null) {
postRootTraverse(T.getLchild());
postRootTraverse(T.getRchild());
System.out.print(T.getData());
}
}
//層序遍歷二叉樹的演算法
public void levelTraverse() {
BiTreeNode T=root;
if (T!= null){
LinkQueue L =new LinkQueue();
L.offer(T);
while( !L.isEmpty()) {
T=(BiTreeNode)L.poll();
System.out.print(T.getData());
if (T.getLchild()!=null)
L.offer(T.getLchild());
if(T.getRchild()!=null)
L.offer(T.getRchild());
}
}
}
public BiTreeNode getRoot() {
return root;
}
public void setRoot(BiTreeNode root) {
this.root = root;
}
}
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
和環境沒關系吧,感覺像是找不到LinkQueue這個類uj5u.com熱心網友回復:
javac xxxx 把.java去掉uj5u.com熱心網友回復:
javac xxxx 把.java去掉
不對不對說錯了。沒看到你代碼里面的main函式入口
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/64731.html
標籤:Java相關
