二叉樹的幾種遍歷方式 C 實現)

2021-10-02 20:48:00 字數 1122 閱讀 3011

前序遍歷:根結點->左子樹->右子樹

中序遍歷:左子樹->根結點->右子樹

後序遍歷:左子樹->右子樹->根結點

層次遍歷:從最高層到最底層每層從左向右遍歷

例如下圖中的二叉搜尋樹 

前序遍歷:8  3  1  6  4  7  10  14  13

中序遍歷:1  3  4  6  7  8  10  13  14

後序遍歷:1  4  7  6  3  13  14  10  8

層次遍歷:8  3  10  1  6  14  4  7  13

對於二叉搜尋樹,中序遍歷的結果為二叉樹中的結點值從小到大排序的結果。 

struct treenode 

};

遞迴版本:

void preorder(treenode* root)
非遞迴版本:

void preorder(treenode* root) 

else

}}

遞迴版本:

void inorder(treenode* root) 

}

非遞迴版本:

void inorder(treenode* root) 

else

}}

遞迴版本:

void postorder(treenode* root) 

}

非遞迴版本:

void postorder(treenode* root) 

else

}}

void level(treenode* root) 

if (node->right)

queue1.pop();

}}

int treedepth(treenode* root)

二叉樹幾種遍歷方式

一 基本概念 每個結點最多有兩棵子樹,左子樹和右子樹,次序不可以顛倒。性質 1 非空二叉樹的第n層上至多有2 n 1 個元素。2 深度為h的二叉樹至多有2 h 1個結點。滿二叉樹 所有終端都在同一層次,且非終端結點的度數為2。在滿二叉樹中若其深度為h,則其所包含的結點數必為2 h 1。完全二叉樹 除...

二叉樹後續遍歷的幾種方式

資料結構定義 definition for a binary tree node.public class treenode treenode int val treenode int val,treenode left,treenode right 遞迴寫法 class solution 普通迭代...

二叉樹遍歷方式

先序遍歷 根 左子樹 右子樹 遞迴版本 public static void preprint treenode root 非遞迴版本 public static void preorder treenode root if s.empty 中序遍歷 左子樹 根 右子樹 遞迴版本 public st...