java 實現二叉樹的遍歷

2021-08-15 01:31:12 字數 1576 閱讀 4086

1、定義乙個節點類:

public

class node

public

node(int data)

public

node(int data, node left, node right)

public

intgetdata()

public

void

setdata(int data)

public node getleft()

public

void

setleft(node left)

public node getright()

public

void

setright(node right)

}

2、演算法實現類:

public class binarynode

}//前序遍歷非遞迴的方式

public

void preordernonrecursive(node root)

if(stack

.isempty()) break;

root=

stack

.pop();

root=root.getright();}}

//中序遍歷採用遞迴的方式

public

void inorder(node root)

}//中序遍歷採用非遞迴的方式

public

void inordernonrecursive(node root)

if(stack

.isempty())break;

root=

stack

.pop();

system.out.print(root.getdata()+

"\t");

root=root.getright();}}

//後序遍歷採用遞迴的方式

public

void postorder(node root)

}//後序遍歷採用非遞迴的方式

public

void postordernonrecursive(node root)else}}

if(!

stack

.isempty())

root=

stack

.lastelement().getright();

else

root=

null;}}

}//層序遍歷

public

void levelorder(node root)}}

}

3、遍歷測試下圖二叉樹

JAVA 二叉樹遍歷

二叉樹的定義如下 public class treenode 遞迴的版本很簡單,下面僅列出非遞迴的版本。先序遍歷 public void searchpreorder treenode root while root null if root.left null else root s.pop 中序...

用java實現二叉樹遍歷

public class binarytree class treenode public string getdata public void setdata string data public treenode getleftnode public void setleftnode treen...

二叉樹的遍歷(java)

二叉樹的遍歷分為中序,前序,後序 就是利用函式遞迴來實現的遍歷,沒啥好說的,直接上 class treenode public class binarytree treenode currentnode rootnode while true else else else 中序遍歷 public v...