二叉樹的遍歷

2022-11-22 10:03:03 字數 1895 閱讀 9080

飛機票訂票系統

二〇一四年六月

二叉數的遍歷

1、問題陳述

二叉樹的中序、前序、後序的遞迴、非遞迴遍歷演算法,層次序的非遞迴遍歷演算法的實現,應包含建樹的實現。(限1 人完成)

二叉樹的前序、後序的遞迴、非遞迴遍歷演算法,層次序的非遞迴遍歷演算法的實現,應包含建樹的實現。

先序遍歷二叉樹演算法:若二叉樹為空,則空操作;否則(1)訪問根結點;(2)先序遍歷左子樹;(3)先序遍歷右子樹。

中序遍歷二叉樹演算法:若二叉樹為空,則空操作;否則(1)中序遍歷左子樹;(2)訪問根結點;(3)中序遍歷右子樹。

後序遍歷二叉樹演算法:若二叉樹為空,則空操作;否則(1)後序遍歷左子樹;(2)後序遍歷右子樹;(3)訪問根結點。

2、程式**:

#include

#include<>

#include<>

using namespace std;

#define maxsize 100

#define len sizeof(struct btree)

int max=1;

typedef struct btree//二叉樹節點結構體

*binode;

typedef struct stackelemtype//棧的結構體

stackelemtype;

binode p;

//二叉樹的建立

binode stree_creat(char*a,int k)

}void print( binode root)//輸出所建二叉樹

; int top=0,base=0,j=0,k=0,n=0,m=0;

h[top]=root;

j=log(max+1)/log(2)-1;

if(pow(2,j+1)-1 cout<<"你剛輸入的是:\n";

while(h[base]!=null)//把二叉樹的值依次存入陣列

for(top=0;h[k]!=null;top++)//按層輸出

cout<<"\n";

for(n=0;n<(m-1);n++)

cout<<" ";

for(base=0;base cout<<"/"<<"|";

cout<<"\n";

}}//二叉樹的前序遞迴遍歷演算法

void preorder(binode root)

}//二叉樹的前序遍歷非遞迴演算法

void f_preorder(binode root)

if(top>0)//當節點為空但棧頂不為零

}while(root!=null||top>0);

}//二叉樹的中序遍歷演算法

void inorder(binode root)

}//中序非遞迴遍歷演算法

void f_inorder(binode root)

if(top>0)//當節點為空但棧頂不為零時

}while(root!=null||top>0);

} //二叉樹的後序遍歷遞迴演算法

void postorder(binode root)

} //後序非遞迴遍歷演算法

void f_postorder(binode root)

while(s[top-1].flag==1)

if(top>0)

}while(top>0);

}//層次序列遍歷演算法

void leveorder(binode root)

for(i=0;i

}//輸入二叉樹的資訊的函式

binode creat()

{ binode p=null;

cout<<"請輸入你的二叉樹(請按層次由上往下從左往右依次輸入並按#結束,如果節點為空請輸入'0',本遍歷僅支援單字元),輸入為:\n";

二叉樹遍歷技巧

二叉樹先根序 後根序 中根序遍歷的速演算法 解題技巧 經過研究我找出了一種不用畫圖,由先 後 根序遍歷和中根序遍歷迅速確定遍歷結果的辦法。謹以此文獻給智商與我同級而又不得不研究演算法的朋友。抽象思維太差,用例子來說明吧。下面這個是後根遍歷的演算法。例1 已知某二叉樹的先根序遍歷為abcdefg,中根...

非遞迴遍歷二叉樹

遍歷二叉樹的非遞迴演算法 編寫的方法 根據樹中結點的遍歷規律及順序直接寫出其非遞迴演算法。先序非遞迴演算法 思路 假設 t是要遍歷樹的根指標,若t null 對於非遞迴演算法,引入棧模擬遞迴工作棧,初始時棧為空。問題 如何用棧來儲存資訊,使得在先序遍歷過左子樹後,能利用棧頂資訊獲取t的右子樹的根指標...

3最優二叉樹

計算機演算法的設計與分析實驗報告 1 描述 在權為wl,w2,wn的n個葉子所構成的所有二叉樹中,帶權路徑長度最小 即代價最小 的二叉樹稱為最優二叉樹或哈夫曼樹。例 給定4個葉子結點a,b,c和d,分別帶權7,5,2和4。構造如下圖所示的三棵二叉樹 還有許多棵 它們的帶權路徑長度分別為 a wpl ...