問題**:
/*問題及**
*all right reserved.
*檔名稱:二叉樹層次遍歷的演算法.cpp
*完成日期;2023年11月10日
*版本號;v1.0
*問題描述:層次遍歷的演算法
*輸入描述:用括號的形式輸入二叉樹各個元素
*程式輸出:按層次序列輸出
*/
#include #include "btree.h"
int main()
#include #include #include "btree.h"
void levelorder(btnode *b)
if (p->rchild!=null) //有右孩子時將其進隊
} } 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) //銷毀二叉樹
} #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);
執行結果:
知識點總結:
層次遍歷的程式較簡單,利用佇列先進先出的特點從上往下從左往右一層一層的將每個元素進隊,出隊訪問。
學習心得:
好好學習
第十一周專案一(層次遍歷的演算法)
問題及 include include btree.h int main include include include btree.h void levelorder btnode b if p rchild null 有右孩子時將其進隊 void createbtnode btnode b,ch...
第十一周 專案一 層次遍歷的演算法
include include btree.h int main include include include btree.h void levelorder btnode b if p rchild null 有右孩子時將其進隊 void createbtnode btnode b,char s...
第十一周 專案一 層次遍歷演算法1
計算機控制工程學院 班級 計156 2 姓名 陳飛 問題及 define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 btnod...