Java實現二叉樹的前序 中序 後序以及層次遍歷

2021-08-08 04:45:19 字數 1297 閱讀 6581

建立一顆二叉排序樹,並輸出它的前序、中序、後序以及層次遍歷結

輸入:

569

158輸出:61

598//前序15

689//中序51

896//後序61

958//層次

//main函式

public

static

void

main

(string args)

treenode root = new treenode(array[0]);

for(int i = 1; i < num; i++)

dlr(root);//前序遍歷

system.out.println();

ldr(root);//中序遍歷

system.out.println();

lrd(root);//後序遍歷

system.out.println();

levelorder(root);//層次遍歷

system.out.println();

} }

//前序遍歷非遞迴

public

static

void

dlr(treenode node) }

} //中序遍歷非遞迴

public

static

void

ldr(treenode node)

else

} }

//後序遍歷非遞迴

public

static

void

lrd(treenode node)

while(node!=null && (node.right==null || node.right==pre))

stack.push(node);

node = node.right;

} }

//層次遍歷非遞迴

public

static

void

levelorder

(treenode node) }

//構建二叉排序樹

public

static

void

buildbst

(treenode node,int val)

else

}

//二叉樹節點結構

class

treenode

}```

前序建立二叉樹 前序 中序 後序遍歷二叉樹

二叉樹的建立 如果要在記憶體中建立乙個如下左圖這樣的樹,wield 能讓每個結點確認是否有左右孩子,我們對它進行擴充套件,變成如下右圖的樣子,也就是將二叉樹中的每個結點的空指標引出乙個虛結點,其值為乙個特定值,比如 稱之為擴充套件二叉樹。擴充套件二叉樹就可以做到乙個遍歷序列確定一棵二叉樹了。如前序遍...

二叉樹遍歷(前序,中序,後序

二叉樹的遍歷有三種方式,如下 1 前序遍歷 dlr 首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根 左 右。2 中序遍歷 ldr 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左 根 右。3 後序遍歷 lrd 首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左 右 根。例1 如上圖...

由前序 中序,輸出二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。treenode build vectorpre,vectorin 思路 遞迴邊界 當前序為空時,返回空,當前序只有乙個元素時,顯然...