二叉樹的遍歷分為三種:先序遍歷,中序遍歷和後序遍歷
也就是根左右,左根右,左右根。這三種遍歷的思路大概應該都懂,現貼一段遞迴方式遍歷二叉樹的**:
//**是複製的,之前寫過,這種遞迴實現的思想其實很簡單
package order;
/** *@date 2023年7月1日上午9:26:02
*/public
class
binarytree
public node getroot()
/** 構造樹 */
public
static node init()
/** 訪問節點 */
public
static
void
visit(node p)
/** 遞迴實現前序遍歷 */
protected
static
void
preorder(node p)
}/** 遞迴實現中序遍歷 */
protected
static
void
inorder(node p)
}/** 遞迴實現後序遍歷 */
protected
static
void
postorder(node p)
}public
static
void
main(string args)
}class node
public
node(char key, node left, node right)
public
char
getkey()
public
void
setkey(char key)
public node getleft()
public
void
setleft(node left)
public node getright()
public
void
setright(node right)
}
關於二叉樹的遍歷還說一點:
前序序列獲得的是根(第乙個節點);
中序序列獲得的是左右子樹劃分;
後序序列獲得的是根(最後乙個節點)。
前序序列和後序序列只能獲得根,不能獲得左右子樹劃分,所以不能唯一確定一顆二叉樹。
(前序+中序)或者(後序+中序)都能唯一確定一顆二叉樹。
JAVA 二叉樹遍歷
二叉樹的定義如下 public class treenode 遞迴的版本很簡單,下面僅列出非遞迴的版本。先序遍歷 public void searchpreorder treenode root while root null if root.left null else root s.pop 中序...
二叉樹的遍歷(java)
二叉樹的遍歷分為中序,前序,後序 就是利用函式遞迴來實現的遍歷,沒啥好說的,直接上 class treenode public class binarytree treenode currentnode rootnode while true else else else 中序遍歷 public v...
java版遍歷二叉樹
首先編寫二叉樹類binarytree,如下 package package2 public class binarytree public void insert binarytree root,int data else else else 當建立好二叉樹類後可以建立二叉樹例項,並實現二叉樹的先根...