第十一周專案一 驗證演算法(1)層次遍歷演算法的驗證

2021-07-07 02:22:57 字數 1814 閱讀 9259

問題及**:

/*2015,煙台大學計算機與控制工程學院

*完成日期:2023年11月9日

*問題描述:層次遍歷的驗證

*/

(1)標頭檔案:

#ifndef btree_h_included

#define btree_h_included

#define maxsize 100

typedef char elemtype;

typedef struct node

btnode;

void createbtnode(btnode *&b,char *str); //由str串建立二叉鏈

btnode *findnode(btnode *b,elemtype x); //返回data域為x的節點指標

btnode *lchildnode(btnode *p); //返回*p節點的左孩子節點指標

btnode *rchildnode(btnode *p); //返回*p節點的右孩子節點指標

int btnodedepth(btnode *b); //求二叉樹b的深度

void dispbtnode(btnode *b); //以括號表示法輸出二叉樹

void destroybtnode(btnode *&b); //銷毀二叉樹

void levelorder(btnode *b);

#endif // btree_h_included

(2)源程式:

#include #include #include "btree.h"

void createbtnode(btnode *&b,char *str) //由str串建立二叉鏈}}

j++;

ch=str[j];

}}btnode *findnode(btnode *b,elemtype x) //返回data域為x的節點指標

}btnode *lchildnode(btnode *p) //返回*p節點的左孩子節點指標

btnode *rchildnode(btnode *p) //返回*p節點的右孩子節點指標

int btnodedepth(btnode *b) //求二叉樹b的深度

}void dispbtnode(btnode *b) //以括號表示法輸出二叉樹

}}void destroybtnode(btnode *&b) //銷毀二叉樹

}void levelorder(btnode *b)

if (p->rchild!=null) //有右孩子時將其進隊}}

(3)除錯函式:

#include #include "btree.h"

int main()

執行結果:

三次改變測試資料

知識點總結:

在進行層次遍歷時,對某一層的節點訪問完後,在按照對他們的訪問次序對各個節點的左,右孩子進行訪問。

學習心得:

通過對執行結果的比較,可以證明層次遍歷是如何執行的。

第十一周專案1 層次遍歷演算法(1)

檔名稱 第十一周專案1 二叉樹演算法驗證.cpp 作 者 高露 完成日期 2015年11月16日 版 本 號 v1.0 問題描述 執行並重複測試教學內容中涉及的演算法。改變測試資料進行重複測試的意義在於,可以從更多角度體會演算法,以達到逐漸掌握演算法的程度。使用你的測試資料,並展示測試結果,觀察執行...

第十一周 專案一 層次遍歷演算法1

計算機控制工程學院 班級 計156 2 姓名 陳飛 問題及 define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 btnod...

第十一周專案1 驗證演算法(1)層次遍歷演算法的驗證

問題及 煙台大學計算機與控制工程學院 檔名稱 lulu.cpp 完成日期 2015年11月16日 版本號 v1.o 問題描述 層次遍歷演算法的驗證。btree.h ifndef btree h included define btree h included define maxsize 100 t...