二叉樹是每個節點最多只有兩個字數的樹結構,在圖的定義中二叉樹是乙個連通的無環圖,並且每個頂點的度不大於3(根節點的度不大於2)。
節點結構設計
class node
public object getdata()
public
void
setdata(object data)
public node getleftchild()
public
void
setleftchild(node leftchild)
public node getrightchild()
public
void
setrightchild(node rightchild)
}
2.建立二叉樹
public node createbtree(char str)else
}
3.遍歷二叉樹
//先序遞迴遍歷
public
void preorder(node node)
}//先序非遞迴遍歷
public
void npreorder(node node)
node =
stack
.pop();
node = node.getrightchild();}}
//中序遞迴遍歷
public
void inorder(node node)
}//中序非遞迴遍歷
public
void ninorder(node node)
node =
stack
.pop();
system.out.print(node.getdata());
node = node.getrightchild();}}
//後序遞迴遍歷
public
void pastorder(node node)
}//後序非遞迴遍歷
public
void npastorder(node node)
node =
stack
.peek();
if(node.getrightchild() ==
null
|| node.getrightchild() == prenode)else}}
4.測試及輸出結果
public static void main(string args)
/***輸出結果:
*先序遞迴遍歷:abcdefgh
*先序非遞迴遍歷:abcdefgh
*中序遞迴遍歷:cbedfagh
*中序非遞迴遍歷:cbedfagh
*後序遞迴遍歷:cefdbhga
*後序非遞迴遍歷:cefdbhga
*/
二叉樹的儲存結構及實現
二叉樹的順序儲存結構就是用一維陣列儲存二叉樹中的結點,並且結點的儲存位置 下標 應能體現結點之間的邏輯關係 父子關係。完全二叉樹和滿二叉樹中結點的序號可以唯一地反映出結點之間的邏輯關係 前序遍歷 void preorder int root,char data return 中序遍歷 void in...
二叉樹及二叉樹的遍歷
二叉樹的定義 樹的度為2的樹。二叉樹的遞迴定義 二叉樹或者是一棵空樹,或者是一棵由乙個根結點和兩棵互不相交的左子樹和右子樹所組成的非空樹,而左右子樹又都是一棵二叉樹。1.第i層上至多有2的i 1次方個結點。2.深度為h的二叉樹至多有2的h次方減1個結點。3.每一層都滿的二叉樹稱為滿二叉樹,只在最後一...
二叉樹的實現及遍歷
二叉樹是一種非常重要的資料結構,接下來看看如何用 來實現二叉樹,以及二叉樹的插入和遍歷。public class node public void add int s elseif int this value s 將s插入到本節點的左子樹 leftnode.add s else rightnode...