二叉樹遍歷

2021-08-18 11:12:40 字數 1054 閱讀 7014

先序遍歷(dlr):

二叉樹不空,則:

(1)訪問根結點;

(2)先序遍歷左子樹;

(3)先序遍歷右子樹

。圖1的先序遍歷結果:a b d f g c e h

中序遍歷(ldr):若二叉樹不為空,則:                     

(1)中序遍歷左子樹;

(2)訪問根結點;

(3)中序遍歷右子樹。

圖1的中序遍歷結果:b f d g a c e h

後序遍歷(lrd):若二叉樹不為空,則:(1

)後序遍歷左子樹;

(2)後序遍歷右子樹;

(3)訪問根結點。

圖1的後序遍歷結果:f g d b h e c a

typedef char datatype;

typedef struct node

bitnode, *bitree;

void preorder(bitree t)

}void inorder(bitree t)

}void postorder(bitree t)

}

後續遍歷求二叉樹的高度

int posttreedepth(bitree root)

else

}

中序遍歷二叉樹

//非遞迴中序遍歷二叉樹

void inorder(bitree root)

else }}

//遞迴中序遍歷二叉樹

void preorder(bitree root)

else

}}

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...

二叉樹遍歷

描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...