二分搜尋樹 中序遍歷

2021-10-24 12:16:44 字數 2538 閱讀 6183

二分搜尋樹的中序遍歷結果是順序的

package tree;

//具有可比性的泛型

public

class

bstcomparable

>

}private node root;

private

int size;

public

bst(

)public

intsize()

public

boolean

isempty()

// 向二分搜尋樹中新增新的元素

// public void add(e e)else

// }

//向以node為根的二分搜尋樹中插入元素 遞迴演算法

// private void add(node node,e e)

// else if (e.compareto(node.e)>0&&node.right==null)

// if (e.compareto(node.e)<0)else

// add(node.right,e);

// }

public

void

add(e e)

private node add

(node node, e e)

if(e.

compareto

(node.e)

<0)

else

if(e.

compareto

(node.e)

>0)

return node;

}// 是否包含某個節點

public

boolean

contains

(e e)

private

boolean

contains

(node node, e e)

if(e.

compareto

(node.e)==0

)else

if(e.

compareto

(node.e)

<0)

else

}//遍歷

//先序遍歷根左右

public

void

proorder()

private

void

preorder

(node node)

system.out.

println

(node.e)

;preorder

(node.left)

;preorder

(node.right);}

//中序遍歷

public

void

inorder()

private

void

inorder

(node node)

@override

public string tostring()

// 以node為根節點,深度為depth描述二叉樹的字串

private

void

generatebststring

(node node,

int depth,stringbuilder stringbuilder)

stringbuilder.

(generatebststring

(depth)

+ node.e +

"\n");

generatebststring

(node.left, depth +

1, stringbuilder)

;generatebststring

(node.right, depth +

1, stringbuilder);}

private string generatebststring

(int depth)

return stringbuilder.

tostring()

;}public

static

void

main

(string[

] args)

;for

(int num : nums)

/** * 5

* 3 6

* 2 4 8**/

// bst.proorder();

// system.out.println();

// system.out.println(bst);

bst.

inorder()

; system.out.

println()

;}}

二分搜尋樹5 廣度優先遍歷(層序遍歷)

引入佇列的概念 將28入隊,佇列不為空,將隊首28元素取出,輸出,將其左右兩個節點入隊 16 30 將隊首16元素取出,輸出,將其左右兩個節點入隊 30 13 22 將隊首30元素取出,輸出,將其左右兩個節點入隊 13 22 29 42 迴圈這樣的操作,直到隊列為空 結果 28 16 30 13 2...

二分搜尋樹的遍歷

對於一棵二叉樹來說,如果我們想要把這棵樹中的所有節點都給遍歷一遍,那麼我們就需要了解二叉樹的遍歷方式。二叉樹的遍歷方式分為以下三種 二叉樹的乙個簡單的結構如下圖所示 對於其中的 前 中 後 我們都可以理解為是根節點的訪問順序。遍歷時,我們分為三個階段 前 中 後 對於前序遍歷來說 也就是在前階段訪問...

二分搜尋樹的遍歷

遍歷 訪問二分搜尋樹的每乙個元素。深度優先遍歷 每乙個,節點訪問三次。第一次訪問節點的時候最數進行操作。public void preorder 前序遍歷以node為根的二分搜尋樹,遞迴 private void preorder node node public string tostring 生...