九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料

上傳人:沈*** 文檔編號:86547478 上傳時(shí)間:2022-05-07 格式:DOC 頁數(shù):20 大?。?83KB
收藏 版權(quán)申訴 舉報(bào) 下載
大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料_第1頁
第1頁 / 共20頁
大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料_第2頁
第2頁 / 共20頁
大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料_第3頁
第3頁 / 共20頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料》由會員分享,可在線閱讀,更多相關(guān)《大數(shù)據(jù)結(jié)構(gòu) 二叉樹遍歷實(shí)驗(yàn)資料報(bào)告材料(20頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、word數(shù)據(jù)結(jié)構(gòu)之二叉樹實(shí) 驗(yàn) 報(bào) 告 題目:二叉樹的遍歷和子樹交換 指導(dǎo)教師:政宇 班級:通信1202 :徐江 學(xué)號:0909121127需求分析1. 演示程序分別用多種遍歷算法遍歷二叉樹并把數(shù)據(jù)輸出。2. 輸入字符序列,遞歸方式建立二叉樹。3.在演示過程序中,用戶敲擊鍵盤,輸入數(shù)據(jù),即可看到數(shù)據(jù)的輸出。4.實(shí)現(xiàn)鏈?zhǔn)酱鎯Φ亩鏄涞亩喾N遍歷算法。遍歷算法包括:a) 中序遞歸遍歷算法、前序遞歸遍歷算法【選】b) 中序遍歷非遞歸算法c) 先序或后序遍歷非遞歸算法d) 建立中序線索,并進(jìn)展中序遍歷和反中序遍歷6.設(shè)計(jì)一個測試用的二叉樹并創(chuàng)建對應(yīng)的存二叉樹,能夠測試自己算法的邊界(包括樹節(jié)點(diǎn)數(shù)為0、1

2、以與1 的不同情形)。7.測試數(shù)據(jù):輸入數(shù)據(jù):-+a *b -c d -e f 概要設(shè)計(jì)說明:本程序在遞歸調(diào)用中用到了鏈表,在非遞歸調(diào)用時(shí)用到了棧。1. 棧的抽象數(shù)據(jù)類型ADT Stack數(shù)據(jù)對象:D=ai|aichar,i=1,2,3.數(shù)據(jù)關(guān)系:R=| ai-1,aiD,i=2,3.根本操作:InitStack&S 操作結(jié)果:構(gòu)造一個空棧StackEmpty( S )初始條件:棧S已存在。操作結(jié)果:假設(shè)S為空棧,如此返回OK,否如此返回ERROR。 Push( &S, e )初始條件:棧S已存在。操作結(jié)果:插入元素e為新的棧頂元素。Pop( &S, &e )初始條件:棧S已存在且非空。操作結(jié)

3、果:刪除S的棧頂元素,并用e返回其值。 GetTop( S, &e )初始條件:棧S已存在且非空。操作結(jié)果:用e返回S的棧頂元素。 ADT BinaryTree 數(shù)據(jù)對象D:D是具有一樣特性的數(shù)據(jù)元素的集合。 數(shù)據(jù)關(guān)系R: 假設(shè)D=,如此R=,稱BinaryTree為空二叉樹; 假設(shè)D,如此R=H,H是如下二元關(guān)系; 1在D中存在惟一的稱為根的數(shù)據(jù)元素root,它在關(guān)系H下無前驅(qū); 2假設(shè)D-root,如此存在D-root=D1,Dr,且D1Dr =; 3假設(shè)D1,如此D1中存在惟一的元素x1,H,且存在D1上的關(guān)系H1 H;假設(shè)Dr,如此Dr中存在惟一的元素xr,H,且存在上的關(guān)系Hr H;

4、H=,H1,Hr; 4(D1,H1)是一棵符合本定義的二叉樹,稱為根的左子樹;(Dr,Hr)是一棵符合本定義的二叉樹,稱為根的右子樹。 根本操作: CreateBiTree( &T) 初始條件:給出二叉樹T的定義。 操作結(jié)果:按要求構(gòu)造二叉樹T。PreOrderTraverse_re( T, print() ) 初始條件:二叉樹T存在,print是二叉樹全部結(jié)點(diǎn)輸出的應(yīng)用函數(shù)。 操作結(jié)果:先序遞歸遍歷T,對每個結(jié)點(diǎn)調(diào)用函數(shù)print一次且僅一次。一旦 print()失敗,如此操作失敗。 InOrderTraverse( T, print() ) 初始條件:二叉樹T存在,print是二叉樹全部結(jié)

5、點(diǎn)輸出的應(yīng)用函數(shù)。 操作結(jié)果:中序非遞歸遍歷T,對每個結(jié)點(diǎn)調(diào)用函數(shù)print一次且僅一次。一旦printf()失敗,如此操作失敗。 InOrderTraverse_re(T,print() ) 初始條件:二叉樹T在在,print是二叉樹全部結(jié)點(diǎn)輸出的應(yīng)用函數(shù)。操作結(jié)果:中序遞歸遍歷T,對每個結(jié)點(diǎn)調(diào)用函數(shù)print一次且僅一次。一旦 printf()失敗,如此操作失敗。 PreOrderTraverse(T,print() 初始條件:二叉樹T存在,print是二叉樹全部結(jié)點(diǎn)輸出的應(yīng)用函數(shù)。 操作結(jié)果:先序非遞歸遍歷T,對每個結(jié)點(diǎn)調(diào)用函數(shù)print一次且僅一次。一旦print()失敗,如此操作失敗

6、。 Levelorder(T) 初始條件:二叉樹T在在。操作結(jié)果:分層遍歷二叉樹T,并輸出。InOrderThreading(Thrt,T);初始條件:二叉樹T在在。操作結(jié)果:中序遍歷二叉樹,并將其中序線索化。InOrderTraverse_Thr( T, print);初始條件:二叉樹T在在。操作結(jié)果:中序非遞歸遍歷二叉線索樹TInThreading(p);初始條件:結(jié)點(diǎn)p在在。操作結(jié)果:結(jié)點(diǎn)p與子樹線索化。3.主程序的流程:void main()初始化;提示;執(zhí)行二叉數(shù)ADT函數(shù);4.本程序包含三個模塊1) 主程序模塊void main()初始化;承受命令;顯示結(jié)果;2) 鏈表模塊。遞歸調(diào)

7、用時(shí)實(shí)現(xiàn)鏈表抽象數(shù)據(jù)類型。3) 棧模塊。非遞歸調(diào)用時(shí)實(shí)現(xiàn)棧的抽象數(shù)據(jù)類型。詳細(xì)設(shè)計(jì)1.宏定義與全局變量#define TElemType char#define SElemType BiTree#define OK 1#define OVERFLOW 0#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10SqStack S;BiThrTree pre;BiThrTree i;int CreateBiTree(BiTree &T);/創(chuàng)建二叉樹void PreOrderTraverse_re(BiTree T,vo

8、id (*print)(TElemType e);/先序遞歸遍歷二叉樹void InOrderTraverse(BiTree T,int (*print)(TElemType e);/中序非遞歸遍歷二叉樹void InOrderTraverse_re(BiTree T,int (*print)(TElemType e) ;/中序遞歸遍歷二叉樹void PreOrderTraverse(BiTree T,int (*print)(TElemType e);/先序非遞歸遍歷二叉樹int print(TElemType e);/打印元素void InitStack(SqStack &S);/棧的初始

9、化void Pop(SqStack &S,SElemType &e);void Push(SqStack &S,SElemType &e);int StackEmpty(SqStack S);int GetTop(SqStack S,SElemType &e);void Levelorder(BiTree T) ;void InOrderThreading(BiThrTree &Thrt,BiThrTree T);int InOrderTraverse_Thr(BiThrTree T, int (*print)(TElemType e);void InThreading(BiThrTree p

10、);數(shù)據(jù)結(jié)構(gòu):typedef struct BiTNodeTElemType data;struct BiTNode *lchild ,*rchild;PointerTag LTag , RTag;BiTNode , *BiTree , BiThrNode , *BiThrTree; 根本操作:a)構(gòu)造二叉樹Tint CreateBiTree(BiTree &T)char ch;scanf(%c,&ch);if(ch= )T=NULL;elseif(!(T=(BiTNode *)malloc(sizeof(BiTNode)return ERROR;T-data=ch;if (CreateBiT

11、ree(T-lchild) T-LTag=Link;if (CreateBiTree(T-rchild) T-RTag=Link;return OK;b)先序遞歸遍歷二叉數(shù)T,并輸出全部結(jié)點(diǎn)值。void PreOrderTraverse_re(BiTree T,int (*print)(TElemType e)if(T)if(print(T-data) PreOrderTraverse_re(T-lchild,print);PreOrderTraverse_re(T-rchild,print);return ;elsereturn ;c)中序非遞歸遍歷二叉樹T,并輸出全部結(jié)點(diǎn)值void InO

12、rderTraverse(BiTree T,int (*print)(TElemType e)SqStack S;S.base=NULL;S.top=NULL;SElemType p=NULL;InitStack(S);Push(S,T);while(!StackEmpty(S)while(GetTop(S,p)&p)Push(S,p-lchild);Pop(S,p);if(!StackEmpty(S)Pop(S,p);print(p-data);Push(S,p-rchild);return;d)中序遞歸遍歷二叉樹T,并輸出全部結(jié)點(diǎn)值void InOrderTraverse_re(BiTre

13、e T,int (*print)(TElemType e) if(T) InOrderTraverse_re(T-lchild,print); print(T-data); InOrderTraverse_re(T-rchild,print); e)中序遍歷二叉樹T,并將其中序線索化,Thrt指向頭結(jié)點(diǎn) void InOrderThreading(BiThrTree &Thrt,BiThrTree T)Thrt=(BiThrTree)malloc(sizeof(BiThrNode);Thrt-LTag=Link;/建頭結(jié)點(diǎn)Thrt-RTag=Thread;Thrt-rchild=Thrt;/右

14、指針回指if(!T)Thrt-lchild=Thrt;elseThrt-lchild=T;pre=Thrt;InThreading(T);/中序遍歷進(jìn)展中序線索化pre-rchild=Thrt;pre-RTag=Thread;/最后一個結(jié)點(diǎn)線索化Thrt-rchild=pre;i=Thrt;/InOrderThreadingf)結(jié)點(diǎn)p線索化void InThreading(BiThrTree p) if (p) InThreading(p-lchild); / 左子樹線索化 if (!p-lchild) / 建前驅(qū)線索 p-LTag = Thread; p-lchild = pre; if (

15、!pre-rchild) / 建后繼線索 pre-RTag = Thread; pre-rchild = p; pre = p; / 保持pre指向p的前驅(qū) InThreading(p-rchild); / 右子樹線索化 / InThreadingg)/中序遍歷線索化二叉樹int InOrderTraverse_Thr(BiThrTree T, int (*print)(TElemType e)BiThrTree p=NULL;p=T-lchild;while(p!=T)while(p-LTag=Link)p=p-lchild;if(!print(p-data)return ERROR;whi

16、le(p-RTag=Thread & p-rchild!=T)p=p-rchild;print(p-data);p=p-rchild;return OK;數(shù)據(jù)結(jié)構(gòu):typedef structSElemType *base;SElemType *top;int stacksize;SqStack;根本操作:a)創(chuàng)建一個空棧void InitStack(SqStack &S)S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType);S.top=S.base;/初始為空S.stacksize=STACK_INIT_SIZE;return

17、;b)棧頂插入元素void Push(SqStack &S,SElemType &e)if(S.top-S.base=S.stacksize)S.base=(SElemType*)realloc(S.base,(STACK_INIT_SIZE+STACKINCREMENT)*sizeof(SElemType);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;c)棧頂刪除元素void Pop(SqStack &S,SElemType &e)if(S.top=S.base)return;e=*-S.top;return;

18、d)判斷棧是否為空棧int StackEmpty(SqStack S)if(S.top=S.base)return OK;elsereturn ERROR;e)e返回S的棧頂元素int GetTop(SqStack S,SElemType &e)if(S.top=S.base)return ERROR;e=*(S.top-1);return OK;void main()int flag;BiTree T;BiThrTree Thrt;printf(*n);printf(* 實(shí)驗(yàn)12 二叉樹的遍歷 *n);printf(* 1. 實(shí)現(xiàn)二叉樹的不同遍歷算法和二叉樹的中序線索化算法 *n);prin

19、tf(* a) 中序遞歸遍歷算法; *n);printf(* b) 先序遞歸遍歷算法; *n);printf(* c) 中序遍歷的非遞歸算法; *n);printf(* d) 先序或后序遍歷非遞歸算法之一; *n);printf(* e) 建立中序線利用線索進(jìn)展中序遍歷和反中序遍歷。 *n);printf(* 2. 實(shí)現(xiàn)二叉樹的按層遍歷算法。 *n);printf(*n);printf(n選擇操作:nt1.先序與中序遍歷算法nt2.中序線索的中序遍歷和反中序遍歷算法nt3.按層遍歷算法n請選擇:);scanf(%d,&flag);switch(flag) case 1:printf(前序遞歸創(chuàng)

20、建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(中序遞歸遍歷輸出:);InOrderTraverse_re(T,print);printf(n前序遞歸遍歷輸出:);PreOrderTraverse_re(T,print);printf(n中序非遞歸遍歷輸出:);InOrderTraverse(T,print);printf(n前序非遞歸遍歷輸出:);PreOrderTraverse(T,print); printf(n);break;case 2:printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateB

21、iTree(T);printf(n中序遍歷線索化二叉樹:);InOrderThreading(Thrt , T);InOrderTraverse_Thr(Thrt , print);break;case 3: printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(n按層遍歷輸出:);Levelorder(T);printf(n);break;default:return;6. 函數(shù)間調(diào)用關(guān)系mainInOrderTraverse_reCreateBitreePreOrderTraverse_reInOrderTravers

22、ePreOrderTraverseInOrderThreadingInOrderTraverse_ThrThreadingStack操作調(diào)試分析1、二叉樹的分層遍歷,開始時(shí)想用隊(duì)列來做,但考慮到比擬麻煩,因而改為數(shù)組模擬隊(duì)列,簡單易懂,課后可自行嘗試用隊(duì)列來做。2 在線索化二叉樹時(shí)考慮到如果將兩種存儲結(jié)構(gòu)分開將導(dǎo)致兩個類型的指針不能互相傳值,造成許多麻煩。比擬兩種存儲結(jié)構(gòu)發(fā)現(xiàn),線索二叉樹比二叉樹多了兩個標(biāo)志域LTag,Rtag。于是把兩種存儲結(jié)構(gòu)合并為BiThrNode,并在建立二叉樹時(shí)把LTag,Rtag均置為Link。程序正常運(yùn)行。 3.進(jìn)入演示程序,完成編譯,連接即按下Ctrl F5進(jìn)入

23、演示界面,或直接打開執(zhí)行文件BiTree.exe,產(chǎn)生如如如下圖所示的界面: 用戶需根據(jù)用戶提示信息操作,輸入二叉樹以空格表示空結(jié)點(diǎn),輸入完成后按回車鍵,屏幕上打印出對應(yīng)于該二叉樹的各種遍歷結(jié)果。如如如下圖:六、 測試結(jié)果輸入:-+a *b -c d -e f 屏幕輸出:中序遞歸遍歷輸出:a+b*c-d前序遞歸遍歷輸出:+a*b-cd中序非遞歸遍歷輸出:a+b*c-d前序非遞歸遍歷輸出:+a*b-cd按層遍歷輸出:+a*b-cd中序遍歷線索化二叉樹:a+b*c-d七、 附錄#include#include#define QElemType BiTNode#define TElemType ch

24、ar#define OK 1#define OVERFLOW 0#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef enum PointerTagLink,Thread;/Link=0,指針,Thread=1,線索typedef struct BiTNodeTElemType data;struct BiTNode *lchild ,*rchild;PointerTag LTag , RTag;BiTNode , *BiTree , BiThrNode , *BiThrTree;/二叉樹#defi

25、ne QElemType BiTNode#define SElemType BiTreetypedef structSElemType *base;SElemType *top;int stacksize;SqStack;/全局變量SqStack S;BiThrTree pre;BiThrTree i;/*函數(shù)聲明*/ int CreateBiTree(BiTree &T);/創(chuàng)建二叉樹void PreOrderTraverse_re(BiTree T,void (*print)(TElemType e);/先序遞歸遍歷二叉樹void InOrderTraverse(BiTree T,int

26、(*print)(TElemType e);/中序非遞歸遍歷二叉樹void InOrderTraverse_re(BiTree T,int (*print)(TElemType e) ;/中序遞歸遍歷二叉樹void PreOrderTraverse(BiTree T,int (*print)(TElemType e);/先序非遞歸遍歷二叉樹int print(TElemType e);/打印元素void InitStack(SqStack &S);/棧的初始化void Pop(SqStack &S,SElemType &e);void Push(SqStack &S,SElemType &e)

27、;int StackEmpty(SqStack S);int GetTop(SqStack S,SElemType &e);void Levelorder(BiTree T) ;void InOrderThreading(BiThrTree &Thrt,BiThrTree T);int InOrderTraverse_Thr(BiThrTree T, int (*print)(TElemType e);void InThreading(BiThrTree p);/*二叉樹的創(chuàng)建遞歸創(chuàng)建*/int CreateBiTree(BiTree &T)char ch;scanf(%c,&ch);if(c

28、h= )T=NULL;elseif(!(T=(BiTNode *)malloc(sizeof(BiTNode)return ERROR;T-data=ch;if (CreateBiTree(T-lchild) T-LTag=Link;if (CreateBiTree(T-rchild) T-RTag=Link;return OK; /*/ /* 先序遞歸遍歷輸出 */ /*/void PreOrderTraverse_re(BiTree T,int (*print)(TElemType e)if(T)if(print(T-data) PreOrderTraverse_re(T-lchild,p

29、rint);PreOrderTraverse_re(T-rchild,print);return ;elsereturn ; /*/ /* 中序非遞歸遍歷輸出 */ /*/void InOrderTraverse(BiTree T,int (*print)(TElemType e)SqStack S;S.base=NULL;S.top=NULL;SElemType p=NULL;InitStack(S);Push(S,T);while(!StackEmpty(S)while(GetTop(S,p)&p)Push(S,p-lchild);Pop(S,p);if(!StackEmpty(S)Pop

30、(S,p);print(p-data);Push(S,p-rchild);return; /*/ /* 中序遞歸遍歷輸出 */ /*/void InOrderTraverse_re(BiTree T,int (*print)(TElemType e) if(T) InOrderTraverse_re(T-lchild,print); print(T-data); InOrderTraverse_re(T-rchild,print); return ; /*/ /* 按照前序非遞歸遍歷二叉樹:棧 */ /*/ void PreOrderTraverse(BiTree T,int (*print)

31、(TElemType e) SqStack S;S.base=NULL;S.top=NULL;SElemType p=T;/p指向當(dāng)前訪問的結(jié)點(diǎn) InitStack(S); while(p|!StackEmpty(S) if(p) print(p-data); Push(S,p); p=p-lchild; else Pop(S,p); p=p-rchild; return; void InOrderThreading(BiThrTree &Thrt,BiThrTree T)/中序遍歷二叉樹T,并將其中序線索化,Thrt指向頭結(jié)點(diǎn)Thrt=(BiThrTree)malloc(sizeof(BiT

32、hrNode);Thrt-LTag=Link;/建頭結(jié)點(diǎn)Thrt-RTag=Thread;Thrt-rchild=Thrt;/右指針回指if(!T)Thrt-lchild=Thrt;elseThrt-lchild=T;pre=Thrt;InThreading(T);/中序遍歷進(jìn)展中序線索化pre-rchild=Thrt;pre-RTag=Thread;/最后一個結(jié)點(diǎn)線索化Thrt-rchild=pre;i=Thrt;/InOrderThreadingvoid InThreading(BiThrTree p) if (p) InThreading(p-lchild); / 左子樹線索化 if (

33、!p-lchild) / 建前驅(qū)線索 p-LTag = Thread; p-lchild = pre; if (!pre-rchild) / 建后繼線索 pre-RTag = Thread; pre-rchild = p; pre = p; / 保持pre指向p的前驅(qū) InThreading(p-rchild); / 右子樹線索化 / InThreadingint InOrderTraverse_Thr(BiThrTree T, int (*print)(TElemType e)/中序遍歷線索化后的二叉樹BiThrTree p=NULL;p=T-lchild;while(p!=T)while(

34、p-LTag=Link)p=p-lchild;if(!print(p-data)return ERROR;while(p-RTag=Thread & p-rchild!=T)p=p-rchild;print(p-data);p=p-rchild;return OK;/*以下為輔助函數(shù)*/int print(TElemType e)printf(%c,e);return OK;/*棧函數(shù)*/*棧的初始化*/void InitStack(SqStack &S)S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType);S.top=S.ba

35、se;/初始為空S.stacksize=STACK_INIT_SIZE;return;/*棧頂插入元素*/void Push(SqStack &S,SElemType &e)if(S.top-S.base=S.stacksize)S.base=(SElemType*)realloc(S.base,(STACK_INIT_SIZE+STACKINCREMENT)*sizeof(SElemType);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=e;/*棧頂刪除元素*/void Pop(SqStack &S,SElemTy

36、pe &e)if(S.top=S.base)return;e=*-S.top;return;int StackEmpty(SqStack S)/*假設(shè)棧為空棧,如此返回OK,否如此返回ERROR*/if(S.top=S.base)return OK;elsereturn ERROR;int GetTop(SqStack S,SElemType &e)if(S.top=S.base)return ERROR;e=*(S.top-1);return OK; /*/ /* 按層次順序建立一棵二叉樹 */ /*/ void Levelorder(BiTree T) int i,j; BiTNode *

37、q20,*p; /*q20用于模擬隊(duì)列,存儲入隊(duì)的結(jié)點(diǎn)*/ p=T; if(p!=NULL) i=1;qi=p;j=2; /*i為隊(duì)首位置,j為隊(duì)尾位置*/ while(i!=j) p=qi; printf(%c,p-data); /*訪問隊(duì)首元素*/ if (p-lchild!=NULL) qj=p-lchild; j+; /*假設(shè)隊(duì)首元素左鏈域不為空,如此將其入隊(duì)列*/ if (p-rchild!=NULL) qj=p-rchild; j+; /*假設(shè)隊(duì)首元素右鏈域不為空,如此將其入隊(duì)列*/ i+; /*將隊(duì)首移到下一個位置*/ void main()int flag;BiTree T;B

38、iThrTree Thrt;printf(*n);printf(* 實(shí)驗(yàn)12 二叉樹的遍歷 *n);printf(* 1. 實(shí)現(xiàn)二叉樹的不同遍歷算法和二叉樹的中序線索化算法 *n);printf(* a) 中序遞歸遍歷算法; *n);printf(* b) 先序遞歸遍歷算法; *n);printf(* c) 中序遍歷的非遞歸算法; *n);printf(* d) 先序或后序遍歷非遞歸算法之一; *n);printf(* e) 建立中序線利用線索進(jìn)展中序遍歷和反中序遍歷。 *n);printf(* 2. 實(shí)現(xiàn)二叉樹的按層遍歷算法。 *n);printf(*n);/*printf(n選擇操作:nt

39、1.先序與中序遍歷算法nt2.中序線索的中序遍歷和反中序遍歷算法nt3.按層遍歷算法n請選擇:);scanf(%d,&flag);switch(flag)case 1:printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(中序遞歸遍歷輸出:);InOrderTraverse_re(T,print);printf(n前序遞歸遍歷輸出:);PreOrderTraverse_re(T,print);printf(n中序非遞歸遍歷輸出:);InOrderTraverse(T,print);printf(n前序非遞歸遍歷輸出:);P

40、reOrderTraverse(T,print); printf(n);break;case 2:printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(n中序遍歷線索化二叉樹:);InOrderThreading(Thrt , T);InOrderTraverse_Thr(Thrt , print);break;case 3: printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(n按層遍歷輸出:);Levelorder(T);printf(n);br

41、eak;default:return;*/printf(前序遞歸創(chuàng)建二叉樹空格 表示此結(jié)點(diǎn)為空:n);getchar();CreateBiTree(T);printf(中序遞歸遍歷輸出:);InOrderTraverse_re(T,print);printf(n前序遞歸遍歷輸出:);PreOrderTraverse_re(T,print);printf(n中序非遞歸遍歷輸出:);InOrderTraverse(T,print);printf(n前序非遞歸遍歷輸出:);PreOrderTraverse(T,print); printf(n按層遍歷輸出:);Levelorder(T);printf(n中序遍歷線索化二叉樹:);InOrderThreading(Thrt , T);InOrderTraverse_Thr(Thrt , print);printf(n);while(1);return;20 / 20

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!