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...