一.實驗任務:
二叉樹的遍歷:分別以順序儲存結構和二叉鍊錶作儲存結構,試編寫前序、中序、後序及層次順序遍歷二叉樹的演算法。
二.實驗任務的子任務:
本人設計以二叉鍊錶作儲存結構,編寫前序、中序、後序及層次順序遍歷二叉樹的演算法。
三.演算法分析(如圖):文字或流程圖或畫圖說明都可
1.假設輸入的資料即為乙個二叉鏈結構。
2.再分別按前序,中序,後序及層次順序遍歷二叉樹結構。
3.最後按實驗順序將結果進行顯示。
四.源**:
#include
<
stdio
.h>
#include<
malloc
.h>
#include<
stdio
.h>
#define m10
typedef
intdatatype;/*
元素的資料型別
*/ typedef
struct
node
bittnode
,*bitree;
intfront
=0,rear
=0; bittnode
*que
[10];
bittnode
*creat()
return(t
); }
/*creat*/
/* 前序遍歷二叉樹
t */
void
preorder
(bitreet)
}/*
中序遍歷二叉樹
t */
void
inorder
(bitreet)
}/*
後序遍歷二叉樹
t */
void
postorder
(bitreet)
}void
enqueue
(bittnode*t
) }/*enqueue*/
bittnode
* delqueue()
}/*delqueue*/
/* 按層次遍歷二叉樹
t */
void
levorder
(bitreet)
}}/* levorder */
void
main()
執行結果:
實驗結論:
通過本實驗我們可以進一步了解,二叉樹的建立,前、後、中序遍歷,以及二叉樹的一些基本性質等操作。對遞迴呼叫有了更進一步的理解。
複習整理 (一)二叉樹遍歷
介紹常規的三種遞迴遍歷方法 先中後 以及非遞迴的先序 中序 後序 層序遍歷對二叉樹這種資料結構有一定了解 遍歷二叉樹的目的是為了訪問到每個結點且按照某一特定的順序 一定要記住子樹的根 左 右 遞迴的特點就是 可讀性高,容易理解 先序遍歷,以rt為根的樹 根 左 右 template void bin...
二叉樹相關演算法(一) 二叉樹的遍歷
遞迴方式會導致每個節點會經過三次,先序是在第一次經過節點時訪問,中序是第二次經過節點時訪問,後序是第三次經過節點時訪問。其中較為特殊的是葉子節點,左孩子和右孩子都為空,訪問空樹時什麼都不做就返回。public static void p node h 1 利用棧來進行實現,三種演算法在理解的基礎上進...
二叉樹學習(一)二叉樹基礎
最近準備學習一下資料結構,二叉樹當然是必須要了解的了。網上看了一些貼子,順便把重要的內容就記下來了,有需要的同學可以看看,入門看很有幫助。1.1 定義 1.2 結點的度 1.3 結點關係 1.4 結點層次 2.1 定義 2.2 二叉樹特點 每個結點最多有兩顆子樹,所以二叉樹中不存在度大於2的結點。左...