C語言資料結構之二叉樹的非遞迴後序遍歷演算法

2022-10-04 00:36:15 字數 472 閱讀 5851

c語言資料結構之二叉樹的非遞迴後序遍歷演算法

前言:前序、中序、後序的非遞迴遍歷中,要數後序最為麻煩,如果只在棧中保留指向結點的指標,那是不夠的,必須有一些額外的資訊存放在棧中。

方法有很多,這裡只舉一種,先定義棧結點的資料結構

typedef structsnode //node 是二叉樹的結點結構,rvisited==1代表p所指向的結點的右結點已被訪問過。

lastordertr**erse(bit程式設計客棧ree bt)

//然後進入迴圈體

while(!stack.empty())

else //若它的右孩子存在且rvisited為0,說明以前還沒有動過它的右孩子,於是就去處理一下其右孩子。

}//這一輪迴圈已結束,剛剛入棧的那ekzluqkgl些結點我們不必管它了,下一輪迴圈會將這些結點照顧的很好。

}}本文標題: c語言資料結構之二叉樹的非遞迴後序遍歷演算法

本文位址:

資料結構之二叉樹的非遞迴排序

方法 1 建立乙個棧 2 把根節點入棧 3 取出棧頂元素,訪問這個節點 4 把當前節點的右子樹入棧,左子樹入棧 非空 5 回到3重複執行。源程式 public static void preorderbyloop treenode root 建立乙個棧 stack stack newstack 把根...

資料結構之二叉樹 C語言

二叉樹是一種依託指標建立的資料結構。二叉樹結構體中包含資料域和兩個指標,乙個指向左樹,乙個指向右樹。開始的第乙個結點稱為二叉樹的根節點,需要建立乙個指向根節點的指標,這樣才能訪問整棵二叉樹。我所知的有兩種建立方式。第一種是設個函式的返回型別為二叉樹結點結構體。例如 typedef struct tr...

資料結構之二叉樹 C語言

二叉樹是一種依託指標建立的資料結構。二叉樹結構體中包含資料域和兩個指標,乙個指向左樹,乙個指向右樹。開始的第乙個結點稱為二叉樹的根節點,需要建立乙個指向根節點的指標,這樣才能訪問整棵二叉樹。我所知的有兩種建立方式。第一種是設個函式的返回型別為二叉樹結點結構體。例如 typedef struct tr...