二叉樹的建立與四種遍歷

2021-10-01 07:55:38 字數 1438 閱讀 5251

#include

#include

#define maxsize 100

typedef

struct node

*node;

node *

input()

// 使用前序遍歷的方法建立一棵二叉樹

else

return p;

}typedef

struct

sequeue;

sequeue *

init_queue()

// 初始化佇列

intempty_queue

(sequeue *sq)

// 空佇列

void

in_queue

(sequeue *sq, node x)

// 入隊操作

sq->rear++

; sq-

>data[sq-

>rear]

= x;

}void

out_queue

(sequeue *sq, node x)

// 出隊操作

sq->front++

; x = sq-

>data[sq-

>front];}

void

levelorder

(node t)

// 層次遍歷

if(p-

>right !=

null

)//右子樹不空則入隊}}

void

preorder

(node t)

// 非遞迴前序遍歷

if(top >-1

)}}void

preorder

(node t)

// 遞迴前序遍歷

}void

inorder

(node t)

// 非遞迴中序遍歷

if(top >-1

)}}void

inorder

(node t)

// 遞迴中序遍歷

}void

postorder

(node t)

// 非遞迴後序遍歷

while

(top >-1

&& stack1[top]==1

)// 輸出結點元素

if(top >-1

)// 判斷右節點

else}}

void

postorder

(node t)

// 遞迴後序遍歷

二叉樹四種遍歷方式

二叉樹的四種遍歷方式 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 ...

二叉樹的四種遍歷方式

二叉樹是一種很常見的資料結構,其結構如下圖 下面接受他的四種遍歷方式 前提 這裡先給出測試中的二叉樹結構,如下圖所示 該二叉樹對應的幾種遍歷方式的結果順序 先序遍歷 10 6 4 8 14 12 16 中序遍歷 4 6 8 10 12 14 16 後序遍歷 4 8 6 12 16 14 10 層次遍...