java實現二叉樹演算法 查詢

2021-06-18 16:09:18 字數 1881 閱讀 6422

構造樹如下:

其中二叉樹節點類

/** 二叉樹節點 */

public

class

btnode

public

btnode(

char

key, btnode left, btnode right)

public

char

getkey()

public

void

setkey(

char

key)

public

btnode getleft()

public

void

setleft(btnode left)

public

btnode getright()

public

void

setright(btnode right) }

遍歷二叉樹

/** 二叉樹遍歷 */

public

class

bintree

public

btnode getroot()

/** 構造樹 */

public

static

btnode init()

/** 訪問節點 */

public

static

void

visit(btnode p)

/** 遞迴實現前序遍歷 */

protected

static

void

preorder(btnode p)

}/** 遞迴實現中序遍歷 */

protected

static

void

inorder(btnode p)

}/** 遞迴實現後序遍歷 */

protected

static

void

postorder(btnode p)

}/** 非遞迴實現前序遍歷 */

protected

static

void

iterativepreorder(btnode p) }}

/** 非遞迴實現後序遍歷 */

protected

static

void

iterativepostorder(btnode p)

// 處理右子

stack.push(p);

p = p.getright();}}

/** 非遞迴實現中序遍歷 */

protected

static

void

iterativeinorder(btnode p)

p = stack.pop();

while

(!stack.empty() && p.getright() == 

null

) visit(p);

if(!stack.empty())

p = stack.pop();

else

p = 

null;}

}public

static

void

main(string args) }

輸出結果

pre-order:h d b a c g f e 

in-order:b a d c h g e f 

post-order:a b c d e f g h 

pre-order:h d b a c g f e 

in-order:b a d c h g e f 

post-order:a b c d e f g h 

java 二叉樹實現演算法

package zxx.new 二叉樹演算法實現 author zhaoxin version public class binarytree public binarytree object objects public boolean insert object o else else if c...

Java 二叉樹演算法

二叉樹演算法的排序規則 1 選擇第乙個元素作為根節點 2 之後如果元素大於根節點放在右子樹,如果元素小於根節點,則放在左子樹 3 最後按照中序遍歷的方式進行輸出,則可以得到排序的結果 左 根 右 二叉樹演算法的核心類,此類只提供了新增和列印輸出的方法 package com.lym.binarytr...

二叉樹演算法(java)

為什麼實用二叉樹 一,在有序陣列中插入刪除資料太慢 1插入或者刪除一條資料會移動後面的所有資料 二,在鍊錶中查詢資料太慢 2查詢只能從頭或者尾部一條一條的找 用樹解決問題 有沒有一種插入和刪除像鍊錶那麼快,查詢可以向有序陣列一樣查得快那樣就好了。數實現了這些特點,稱為了最有意思的資料結構之一 樹的術...