《資料結構》課程設計報告
題目——二叉樹遍歷演算法整合
系別: 電腦科學系
班級: 計應班
學號姓名
完成日期: 2012 年 6 月 29日
指導老師
目錄一、課程設計目的 1
二、課程設計內容 1
三、演算法的基本思想 1
《一》棧資料型別定義 1
《二》二叉樹資料型別定義 1
《三》主要模組設計 2
《四》流程圖 4
四、資料測試 4
五、源程式及系統檔案使用說明 7
六、心得體會 10
附錄: 12
培養自己用所學的書本知識去解決實際問題的能力及動手能力,學會用科學理論知識和工程上的技術去開發大型、高質量的應用軟體和系統軟體。通過課程設計的實踐我們可以在程式設計方法上、上進操作等基本技能方面得到比較系統和嚴格的訓練。
二叉樹的先序、中序、後序的遞迴、非遞迴遍歷演算法的實現及建立樹的實現。
輸入乙個二叉樹,將它裝入一維陣列中,利用棧結構建立二叉鍊錶;通過先序、中序、後序訪問根結點遞迴演算法遍歷二叉樹;利用棧結構依次將結點入棧、出棧實現二叉樹的非遞迴演算法遍歷;
node *p,*s[100];
int top=0;
p=root;
struct node
; node *cj()
}//先序遞迴遍歷二叉樹
void inorder(node *bt)
}//中序遞迴遍歷二叉樹
void postorder(node *bt)
}//後序遞迴遍歷二叉樹
void preorder1(node *root)
p=s[top--]; p=p->rd; }}//先序非遞迴遍歷二叉樹
void inorder1(node *root)
if(top>0)
else
}}while(top>0);
}//後序非遞迴遍歷二叉樹
第一組:
第二組:
第三組:
第四組:
第五組:
#include ""
#define maxsize 50
struct node
;node *cj()
//printf("請輸入二叉樹各結點的值和編號\n");
scanf("%d%c",&i,&n);
}return(q[1]);
}void preorder(node *bt) //先序遞迴遍歷二叉樹
}void inorder(node *bt)// 中序遞迴遍歷二叉樹
}void postorder(node *bt) //後序遞迴遍歷二叉樹
}void preorder1(node *root)// 先序非遞迴遍歷二叉樹
p=s[top--]; p=p->rd; }}
void inorder1(node *root) //中序遞迴遍歷二叉樹
}}void postorder1(node *root)//後序非遞迴遍歷二叉樹/
if(top>0)
else
}}while(top>0);
}void main()
{node *bt;
bt=cj();
printf("遞迴排序為:\n");
printf("先序遍歷為:");
preorder(bt);
printf("\n中序遍歷為:");
inorder(bt);
printf("\n後序遍歷為:");
postorder(bt);
printf("\n");
printf("非遞迴遍歷為:\n");
printf("先序遍歷為:");
preorder(bt);
printf("\n中序遍歷為:");
inorder(bt);
printf("\n後序遍歷為:");
postorder(bt);
printf("\n");
二叉樹的遍歷
飛機票訂票系統 二 一四年六月 二叉數的遍歷 1 問題陳述 二叉樹的中序 前序 後序的遞迴 非遞迴遍歷演算法,層次序的非遞迴遍歷演算法的實現,應包含建樹的實現。限1 人完成 二叉樹的前序 後序的遞迴 非遞迴遍歷演算法,層次序的非遞迴遍歷演算法的實現,應包含建樹的實現。先序遍歷二叉樹演算法 若二叉樹為...
二叉樹實驗報告
實驗報告 實驗名稱二叉樹 班級學號 姓名成績 附件 實驗報告說明 1 實驗名稱 要用最簡練的語言反映實驗的內容。2 實驗目的與要求 目的要明確,要抓住重點。3 實驗原理 簡要說明本實驗專案所涉及的理論知識。4 實驗環境 實驗用的軟硬體環境 配置 5 實驗方案設計 思路 步驟和方法等 這是實驗報告極其...
二叉樹遍歷技巧
二叉樹先根序 後根序 中根序遍歷的速演算法 解題技巧 經過研究我找出了一種不用畫圖,由先 後 根序遍歷和中根序遍歷迅速確定遍歷結果的辦法。謹以此文獻給智商與我同級而又不得不研究演算法的朋友。抽象思維太差,用例子來說明吧。下面這個是後根遍歷的演算法。例1 已知某二叉樹的先根序遍歷為abcdefg,中根...