第10周 專案2 二叉樹遍歷的遞迴演算法

2021-07-06 08:52:00 字數 2150 閱讀 8872

問題描述及**:

#ifndef btree_h_included

#define btree_h_included

/*

*煙台大學計控學院

*作 者:楊徵

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

*問題描述:實現二叉樹的先序、中序、後序遍歷的遞迴演算法,並對用」a(b(d,e(h(j,k(l,m(,n))))),c(f,g(,i)))」建立的二叉樹進行測試。 請利用二叉樹演算法庫。

*/#endif // btree_h_included

(1)btree.h

#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 preorder(btnode *b); //先序遍歷的遞迴演算法

void inorder(btnode *b); //中序遍歷的遞迴演算法

void postorder(btnode *b); //後序遍歷的遞迴演算法

#endif // btree_h_included

(2)btree.cpp

#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 preorder(btnode *b); //先序遍歷的遞迴演算法

void inorder(btnode *b); //中序遍歷的遞迴演算法

void postorder(btnode *b); //後序遍歷的遞迴演算法

#endif // btree_h_included

(3)main.cpp

#include #include"btree.h"

int main()

執行結果:

知識點總結:

二叉樹的基本運算及先序、中序、後序遍歷

學習心得:

得對著圖慢慢來 但是感覺中序遍歷有點彆扭

第10周 專案2 二叉樹遍歷的遞迴演算法

1.標頭檔案 btree.h,包含定義順序表資料結構的 巨集定義 要實現演算法的函式的宣告 define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str ...

第10周專案2二叉樹遍歷的遞迴演算法

問題及 計算機與控制工程學院 完成日期 2015年11月6日 問題描述 二叉樹遍歷的遞迴演算法 ifndef btree h included define btree h included define maxsize 100 typedef char elemtype typedef struc...

第10周專案2二叉樹遍歷的遞迴演算法

問題及 1 二叉樹演算法庫 2 main.cpp 檔名稱 專案2.cpp 完成日期 2015.11.9 問題描述 實現二叉樹的先序 中序 後序遍歷的遞迴演算法,並對用 a b d,e h j,k l,m n c f,g i 建立的二叉樹進行測試。輸入描述 測試資料 程式輸出 二叉樹輸出 includ...