第十一周專案1 驗證演算法(1)

2021-07-24 09:37:24 字數 1837 閱讀 3853

問題及**

/*     

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

*作    者:張雯婧  

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

*問題描述:實現二叉樹的層次遍歷演算法,並對用」a(b(,d(,g)),c(e,f))」建立的二叉樹進行測試  

*/

(1).btree.h的**

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);

(2)btree.cpp

#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)main.cpp

#include#include"btree.h"    

int main()    

執行結果

知識點總結:

運用佇列進行層次遍歷,遵循先進先出的原則,在隊不為空時迴圈,分別將其左右孩子節點進隊,直到對空為止。

心得體會:

在運用層次遍歷時運用了環形佇列的相關知識,對之前的知識學以致用,使問題更加簡單化。

第十一周專案1 驗證演算法(1)

程式 檔名稱 1.cpp 完成日期 2016年11月10日 版本號 vc6.0 問題描述 層次遍歷演算法的驗證 輸入描述 無 程式輸出 測試結果 include include define maxsize 100 typedef char elemtype typedef struct node ...

第十一周專案1驗證演算法

define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 btnode findnode btnode b,elemtype x...

第十一周專案1 驗證演算法

問題及 檔名稱 1.cpp 完成日期 2016年11月10日 版本號 v1.0 問題描述 實現二叉樹的層次遍歷演算法,並使用不同測試資料建立二叉樹,進行測試。請利用二叉樹演算法庫。輸入描述 二叉樹字串str 程式輸出 測試結果 btree.h define maxsize 100 typedef c...