class
binarytree
//前序遍歷
public
void
preorder()
}//中序遍歷
public
void
infixorder()
}//後序遍歷
public
void
postorder()
}//前序遍歷查詢
public node preordersearch
(int id)
else
}//中序遍歷查詢
public node infixordersearch
(int id)
else
}//後序遍歷查詢
public node postordersearch
(int id)
else
}}
package 二叉樹;
class
node
public
node
(int id, string name)
public
intgetid()
public
void
setid
(int id)
public string getname()
public
void
setname
(string name)
public node getleft()
public
void
setleft
(node left)
public node getright()
public
void
setright
(node right)
//前序遍歷
public
void
preorder()
if(this
.right != null)
}//中序遍歷
public
void
infixorder()
system.out.
println
(this);
//輸出當前節點if(
this
.right != null)
}//後序遍歷
public
void
postorder()
if(this
.right != null)
system.out.
println
(this);
//輸出當前節點
}//前序遍歷查詢
public node preordersearch
(int id)
//沒有找到,那麼繼續看左孩子節點
//我們需要定義乙個節點來儲存找到的節點
node node = null;if(
this
.left != null)
if(node != null)
//如果還沒有找到,我們就需要去查詢右孩子了if(
this
.right != null)
//這裡即使沒有找到返回的也是null,因為初始值是null
return node;
}//中序查詢
public node infixordersearch
(int id)
if(node != null)
//中序的話直接判斷當前是不是相等if(
this
.id == id)
//如果還沒有找到,我們就需要去查詢右孩子了if(
this
.right != null)
//這裡即使沒有找到返回的也是null,因為初始值是null
return node;
}//後序查詢
public node postordersearch
(int id)
if(node != null)
//如果還沒有找到,我們就需要去查詢右孩子了if(
this
.right != null)
if(node != null)
//後序的話最後判斷當前是不是相等if(
this
.id == id)
return null;
//所有的情況都查詢過了,都沒有查詢到所以
}@override
public string tostring()
';}}
public
class 二叉樹的前序後序中序遍歷
}
總結:對二叉樹的乙個複習 二叉樹遍歷(前序,中序,後序
二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...
二叉樹的遍歷 前序 中序 後序
include includetypedef struct bintree treenode,b tree b tree root null 函式的宣告 b tree creat tree int n void print1 void preorder b tree pointer 前序遍歷 voi...
二叉樹的前序 中序 後序遍歷
樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 ...