複製一顆二叉樹(java語言

2021-09-23 13:33:19 字數 2288 閱讀 4381

createtree(int treelength)是複製二叉樹的方法

/**

* 複製一顆二叉樹,首先先構造一顆新的樹

** @return 返回值

*/public binarytree createtree (

int treelength)

binarytree的構造方法

/**

* 利用空子樹先根序列推出根節點

** @param prelist 先根序列(泛型)

*/public

binarytree

(t prelist)

/** * 從父母結點呼叫到孩子結點,再依次返回,最後再返回到樹的根節點

** @param prelist 先序序列

* @return 返回值

*/private binarynode

create

(t prelist)

}return p;

}

遞迴呼叫方法copy

/**

* 拷貝一顆二叉樹,利用先序遍歷的方法

** @param node 樹結點

* @param copyt 泛型陣列

*/public

void copy (binarynode

node, t[

] copyt)

else

if(node == null)

}

先序遍歷,中序遍歷,後序遍歷

public

void

preorder()

/** * 先根次序遍歷以p結點為根的子樹,遞迴方法

** @param p 樹結點

*/private

void

preorder

(binarynode

p)}public

void

inorder()

/** * 中根次序遍歷以p結點為根的子樹,遞迴呼叫

** @param p 樹結點

*/private

void

inorder

(binarynode

p)}public

void

postorder()

/** * 後根次序遍歷p結點為根的子樹,遞迴呼叫

** @param p 樹結點

*/private

void

postorder

(binarynode

p)}

測試類

public

static

void

main

(string[

] args)

; binarytree

bitee_1 =

newbinarytree

<

>

(prelist_1)

; system.out.

println

("第一顆樹的先序遍歷:");

bitee_1.

preorder()

; system.out.

println

("第一顆樹的中序遍歷:");

bitee_1.

inorder()

; system.out.

println

("第一顆樹的後序遍歷:");

bitee_1.

postorder()

; binarytree

bitee_1_copy ;

bitee_1_copy = bitee_1.

createtree

(prelist_1.length)

; system.out.

println

("複製樹的先序遍歷:");

bitee_1_copy.

preorder()

; system.out.

println

("複製樹的中序遍歷:");

bitee_1_copy.

inorder()

; system.out.

println

("複製樹的後序遍歷:");

bitee_1_copy.

postorder()

;}

程式設計練習之一顆二叉樹包含另一顆二叉樹

劍指offer上的一道程式設計練習,如何確定二叉樹a包含一棵相對小一點的二叉樹b?思路 用兩個函式實現,第乙個首先判斷根結點是否相等,第二個函式繼續判斷子結構是否相等 函式一 第一步,首先從根結點入手,判斷proota的值是否與prootb的根結點的值是否相等。若相等,則在比較a樹的子結構是否包含b...

判斷一顆二叉樹是否是平衡二叉樹

方法一,參考 template typename t intdepthtree bstreenode pbs template typename t bool isbalancetree bstreenode pbs intdepthleft depthtree pbs left intdepthr...

判斷一顆二叉樹是否為對稱二叉樹

本題源自劍指offer 可以自定以一種對稱前序遍歷,即先遍歷父節點,再訪問右子節點,在訪問左子節點,null節點也訪問,將得到的序列和前序遍歷比較,相同就說明二叉樹是對稱的。遞迴 bool issymmetrical treenode proot bool issymmetricalcore tre...