二叉樹的四種遍歷方式

2021-09-30 14:46:10 字數 1405 閱讀 1442

二叉樹是一種很常見的資料結構,其結構如下圖:

下面接受他的四種遍歷方式:

前提:這裡先給出測試中的二叉樹結構,如下圖所示

該二叉樹對應的幾種遍歷方式的結果順序:

先序遍歷:10->6->4->8->14->12->16

中序遍歷:4->6->8->10->12->14->16

後序遍歷:4->8->6->12->16->14->10

層次遍歷:10->6->14->4->8->12->16

接下來是相應的**實現:

public

class

main

/*** 層次遍歷

*@param root 根結點

*/public

static

void

leveliterator(treenode root)

linkedlistqueue = new linkedlist<>();

treenode current = null;

queue.offer(root);//進隊

while (!queue.isempty())

if (current.right != null) }}

/*** 先序遍歷

*@param root 根結點

*/public

static

void

prenode(treenode root)

}/**

* 中序遍歷

*@param root 根結點

*/public

static

void

innode(treenode root)

}/**

* 後序遍歷

*@param root

*/public

static

void

pronode(treenode root)

}/**

* 初始化二叉樹

*@return 二叉樹的根結點

*/public

static treenode inittreenode()

/*** 二叉樹的資料結構

*/public

static

class

treenode }}

對於前、中、後序遍歷,使用的是遞迴的思想,按照其先後順序輸出即可實現。

層次遍歷則是使用到了佇列,具體過程用一張圖表示。

二叉樹四種遍歷方式

二叉樹的四種遍歷方式 include include using namespace std 二叉樹節點的定義 class treenode 遞迴方式,每個結點只遍歷一次,時間複雜度o 1 遞迴最多呼叫n次,空間複雜度o n 先序 根 遞迴左 遞迴右 void preorder treenode r...

二叉樹的四種遍歷方式

前言最近做題用到很多次二叉樹的遍歷,因此寫這篇文章記錄二叉樹的四種遍歷方式。首先為了方便,先假設二叉樹的結構如下 struct treenode 對於程式的輸入為 3 根節點root 9 20 4 10 15 71.二叉樹的層次遍歷 層次遍歷就是依次遍歷樹的每一層。借助佇列,可以輕鬆實現。void ...

二叉樹四種遍歷的例項實現

內容 二叉樹初始化 先序輸入 層序遍歷 非遞迴的佇列方式 先序遍歷 遞迴 中序遍歷 遞迴 後序遍歷 遞迴 include include include include define nodedata char using namespace std typedef struct treenode ...