資料結構 二叉樹三種遍歷方式

2021-10-04 23:10:22 字數 1378 閱讀 4900

二叉樹的遍歷分三種:先序、中序、後序

假如有一棵樹

先序遍歷:根節點->左孩子->右孩子,則上圖樹的先序遍歷結果為:abc

中序遍歷:左孩子->根節點->右孩子,則上圖樹的遍歷結果為:bac

後序遍歷:左孩子->右孩子->根節點,則遍歷結果為:bca

ps:注意根節點的位置,先序在第乙個,中序在中間,後續在最後。

樹的定義就是遞迴的,特別是鏈式儲存結構的樹,因此樹的遍歷通常使用遞迴的方法實現的。

#include

#include

#define error 0

#define ok 1

#define overflow -1

#define true 1

#define false 0

typedef

char elemtype;

typedef

int status;

//二叉樹結構體

typedef

struct bitnode bitnode,

*bitree;

void

createtree

(bitree &t, elemtype e)

void

printnode

(bitree n)

void

preorder

(bitree t)

}void

inorder

(bitree t)

}void

postorder

(bitree t)

}//在t樹中查詢元素e,並將結果儲存到ins_node

status findnode

(bitree t, elemtype e, bitree &ins_node)

findnode

(t->lnode, e, ins_node)

;findnode

(t->rnode, e, ins_node);}

return error;

}//在樹的左節點插入

status insertlight

(bitree &t, elemtype goal, elemtype data)

//在樹的右節點插入

status insertright

(bitree &t, elemtype goal, elemtype data)

//測試遍歷方法

intmain()

本文完.

極客技術空間:

資料結構 二叉樹的三種遍歷方式

樹是n n 0 個有限個資料的元素集合,形狀像一顆倒過來的樹。二叉樹是一顆特殊的樹,二叉樹每個節點最多有兩個孩子結點,分別稱為左孩子 右孩子 測試用例 前序遍歷 先根遍歷 1 先訪問根節點 2 前序訪問左子樹 3 前序訪問右子樹 1 2 3 4 5 6 中序遍歷 1 中序訪問左子樹 2 訪問根節點 ...

二叉樹三種遍歷方式

三種遍歷方式是按照根節點的訪問順序來定義的 1 前序遍歷 先訪問根結點 然後遍歷左子樹,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。根左右 2 中序遍歷 先遍歷左子樹 然後訪問根結點,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先遍歷左子樹,然後訪問...

重建二叉樹 遍歷二叉樹的三種方式

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。示例 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7限制 0 節點個數 5000 這個題的解法...