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

2021-07-24 12:07:47 字數 1811 閱讀 8339

問題及**

*all right reserved.

*檔名稱:二叉樹的構造.cpp

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

*版本號;v1.0

*問題描述:由先序序列和中序序列構造二叉樹

由中序序列和後序序列構造二叉樹

*輸入描述:各個序列元素排列

*程式輸出:二叉樹的構造

*/

#include #include "btree.h"

int main()

#include #include #include "btree.h"

btnode *createbt1(char *pre,char *in,int n)

/*pre存放先序序列,in存放中序序列,n為二叉樹結點個數,

本演算法執行後返回構造的二叉鏈的根結點指標*/

btnode *createbt2(char *post,char *in,int n)

/*post存放後序序列,in存放中序序列,n為二叉樹結點個數,

本演算法執行後返回構造的二叉鏈的根結點指標*/

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

btnode *createbt1(char *pre,char *in,int n);

btnode *createbt2(char *post,char *in,int n);

執行結果

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

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

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

完成時間 2015年11月17號 題目描述 學會使用線序序列和中序序列構造二叉樹 1 演算法庫中標頭檔案部分 ifndef btree h included define btree h included define maxsize 100 typedef char elemtype typede...

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

問題及描述 定理 任何n n 0 個不同節點的二叉樹,都可由它的中序序列和先序序列唯一地確定 輸入描述 btree.h ifndef btree h included define btree h included define maxsize 100 typedef char elemtype t...