第十一周專案1(2) 二叉樹構造演算法的驗證

2021-07-24 12:12:11 字數 1874 閱讀 7539

/* 

檔名稱:二叉樹演算法驗證(2).cpp

作 者:林穎

完成日期:2023年11月10日

版 本 號:v1.0

問題描述: 執行並重複測試教學內容中涉及的演算法。改變測試資料進行重複測試

的意義在於,可以從更多角度體會演算法,以達到逐漸掌握演算法的程度。使用你的測試資料,並展示測試結果,觀察執行結果,以此來領會演算法。

輸入描述: 若干測試資料。

程式輸出: 對應資料的輸出。

*/

btree.h

#define maxsize 100

#define n 30

typedef char elemtype;

typedef elemtype sqbtree[n];

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); //銷毀二叉樹

btnode *trans(sqbtree a,int i);

#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) //銷毀二叉樹

}

btnode *trans(sqbtree a,int i)

main.cpp

#include#include#include"btree.h"

int main()

執行結果:

知識點總結:利用先序和中序演算法構造二叉樹

第十一周專案1(2)二叉樹構造演算法的驗證

問題描述及 ifndef btree h included define btree h included 煙台大學計控學院 作 者 王力源 完成日期 2016年11月10日 問題描述 任何n n 0 個不同節點的二叉樹,都可由它的中序序列和後序序列唯一地確定。endif btree h inclu...

第十一周專案一(2) 二叉樹構造

問題及 all right reserved.檔名稱 二叉樹的構造.cpp 完成日期 2015年11月9日 版本號 v1.0 問題描述 由先序序列和中序序列構造二叉樹 由中序序列和後序序列構造二叉樹 輸入描述 各個序列元素排列 程式輸出 二叉樹的構造 include include btree.h ...

第十一周專案2 二叉樹的構造

問題及 all right reserved.檔名稱 二叉樹的構造.cpp 完成日期 2015年11月9日 版本號 v1.0 問題描述 由先序序列和中序序列構造二叉樹 由中序序列和後序序列構造二叉樹 輸入描述 各個序列元素排列 程式輸出 二叉樹的構造 include include btree.h ...