二叉樹 前序 中序 後序查詢指定的節點

2021-10-11 05:13:22 字數 2968 閱讀 6130

思路分析:

//定義乙個二叉樹

public

class

binarytreedemo

else}}

class

binarytree

//前序遍歷

public node preordersearch

(int no)

else}}

//建立

class

node

public

intgetno()

public

void

setno

(int no)

public string getname()

public

void

setname

(string name)

public node getleft()

public

void

setleft

(node left)

public node getright()

public

void

setright

(node right)

@override

public string tostring()

//no 查詢no

//如果找到就返回該node,如果沒有找到就返回null

public node preordersearch

(int no)

//判斷當前結點的左子結點是不是為空,如果不為空則遞迴前序

//如果左遞迴前序查詢找到結點,則返回

node resnode = null;if(

this

.left != null)

if(resnode != null)

//否則繼續判斷當前結點的右子結點是否為空,如果不為空,則繼續向右遞迴前序查詢if(

this

.right != null)

return resnode;

}}

思路分析:

public

class

binarytreedemo

else}}

class

binarytree

//中序遍歷

public node centerordersearch

(int no)

else}}

//建立

class

node

public

intgetno()

public

void

setno

(int no)

public string getname()

public

void

setname

(string name)

public node getleft()

public

void

setleft

(node left)

public node getright()

public

void

setright

(node right)

@override

public string tostring()

//no 查詢no

//如果找到就返回該node,如果沒有找到就返回null

public node centerordersearch

(int no)

if(resnode != null)

//比較當前節點是不是if(

this

.no == no)

//否則繼續判斷當前結點的右子結點是否為空,如果不為空,則繼續向右遞迴前序查詢if(

this

.right != null)

return resnode;

}}

思路分析:

public

class

binarytreedemo

else}}

class

binarytree

//中序遍歷

public node postordersearch

(int no)

else}}

class

node

public

intgetno()

public

void

setno

(int no)

public string getname()

public

void

setname

(string name)

public node getleft()

public

void

setleft

(node left)

public node getright()

public

void

setright

(node right)

@override

public string tostring()

//no 查詢no

//如果找到就返回該node,如果沒有找到就返回null

public node postordersearch

(int no)

if(resnode != null)

//否則繼續判斷當前結點的右子結點是否為空,如果不為空,則繼續向右遞迴前序查詢if(

this

.right != null)

if(resnode != null)

//比較當前節點是不是if(

this

.no == no)

return resnode;

}}

二叉樹前序,中序,後序求法

二叉樹的前序,中序,後序序列是根據根節點的訪問順序定義的。即 前序序列 根節點 左子樹 右子樹 中序序列 左子樹 根節點 右子樹 後序序列 左子樹 右子樹 根節點 給出中序序列和另外乙個序列,就可以求出第三個序列。例題 poj 2255 tree recovery include include i...

構建二叉樹(前序 中序,中序 後序)

題目鏈結 1.返回值和引數 輸出前序和中序的 vector int 和起止索引 int,輸出樹的根節點 2.單層遞迴邏輯 前序和中序只有乙個元素,返回,否則在中序中找到前序的首位元素,在將中序按次元素劃分為兩個部分,當前節點的左子樹根據劃分的左邊部分得到,右子樹根據右邊部分得到 3.終止條件 當前陣...

二叉樹 前序和中序得到後序

二叉樹前序 遍歷順序為,根節點 左子樹 右子樹 中序 遍歷順序為,左子樹 根節點 右子樹 後序 遍歷順序為,左子樹 右子樹 根節點 可以發現,二叉樹前序中的第乙個節點為樹的根節點root,然後找出root在中序裡面的位置,就可以把前序和中序分別劃分為左 右子樹兩個部分,然後遞迴呼叫即可。舉個例子,前...