二叉樹的遞迴遍歷

2021-09-29 01:58:07 字數 1292 閱讀 7235

#ifndef treehead_h_included

#define treehead_h_included

/*二叉樹的二叉鍊錶儲存表示*/

typedef

int elemtype;

typedef

struct bitnode bitnode,

*bitree;

//構造二叉鍊錶表示二叉樹

//要求以先序輸入

void

createbitree

(bitree &t)

;//先序遞迴遍歷二叉樹

void

preordertree

(bitree t,

void

(*visit)

(elemtype e));

//中序遞迴遍歷二叉樹

void

inordertree

(bitree t,

void

(*visit)

(elemtype e));

//後序遞迴遍歷二叉樹

void

postordertree

(bitree t,

void

(*visit)

(elemtype e));

#endif

// treehead_h_included

先說先序的列印次序是中左右,在遞迴遍歷的時候,先列印根節點就好了。

void

preordertree

(bitree t,

void

(*visit)

(elemtype e)

)else

return

;}

中序: 左中右,現在遞迴的時候,在中間列印根節點

void

inordertree

(bitree t,

void

(*visit)

(elemtype e)

)else

return

;}

後序: 左右中 自然在最後列印根節點

void

postordertree

(bitree t,

void

(*visit)

(elemtype e)

)else

return

;}

在遞迴遍歷中,只要看準根節點在什麼地方,就可以很快寫出來。完整**

遞迴遍歷二叉樹

include include include 二叉鍊錶表示法 typedef struct tag bitnode bitnode 先序遍歷 void xianxuorder bitnode root 先根 printf c root data 左子樹 xianxuorder root lchil...

二叉樹遞迴遍歷

編寫簡單的程式對下圖二叉樹進行遍歷 先訪問根節點 printf c root ch 再遍歷左子樹 recursion root lchild 再遍歷右子數 recursion root rchild 再遍歷左子樹 recursion root lchild 先訪問根節點 printf c root ...

二叉樹的遞迴遍歷

所謂二叉樹的遍歷,本質上就是沿某條搜尋路徑訪問樹中的每個結點,使得每個節點均被訪問一次,而且僅被訪問一次。由二叉樹的基本定義可以知道,遍歷一顆二叉樹首先必須決定對根結點 n 左子樹 l 右子樹 r 的訪問順序,按照先遍歷左孩子再遍歷右孩子的原則,常見的遍歷次序有先序遍歷 nlr 中序遍歷 lnr 和...