/*
* 檔名稱: 1.cpp,main.cpp,list.h
* 完成日期:2023年12月30日
* 版本號:codeblocks
** 問題描述: 由先序序列和中序序列構造二叉樹
* 輸入描述: 無
* 程式輸出: 見執行結果
程式及**:
#ifndef btree_h_included
#define btree_h_included
#define maxsize 100
#include#includetypedef char elemtype;
typedef struct node
btnode;
void createbtnode(btnode *&b,char *str); //由str串建立二叉鏈
void dispbtnode(btnode *b); //以括號表示法輸出二叉樹
void destroybtnode(btnode *&b); //銷毀二叉樹
btnode *createbt1(char *pre,char *in,int n);
#endif // btree_h_included
#include "list.h"
void createbtnode(btnode *&b,char *str) //由str串建立二叉鏈}}
j++;
ch=str[j];
}}void dispbtnode(btnode *b) //以括號表示法輸出二叉樹
}}void destroybtnode(btnode *&b) //銷毀二叉樹
}btnode *createbt1(char *pre,char *in,int n)//pre存放先序序列,in存放中序序列,n為二叉樹結點個數,本演算法執行後返回構造的二叉鏈的根結點指標
#include "list.h"
int main()
執行結果:
知識點總結:
由先序序列和中序序列可以唯一確定後序序列
由中序序列和後序序列唯一可以確定先序序列
其中也運用了遞迴的呼叫
學習心得:
遞迴思想一定要靈活運用,一定要熟能生巧。
第十一周 二叉樹演算法驗證 二叉樹構造演算法的驗證
檔名稱 專案.cpp 作 者 紀冬雪 完成日期 2015年11月20日 版 本 號 v1.0 問題描述 執行並重複測試教學內容中涉及的演算法。改變測試資料進行重複測試的意義在於,可以從更多角度體會演算法,以達到逐漸掌握演算法的程度。使用你的測試資料,並展示測試結果,觀察執行結果,以此來領會演算法。輸...
第十一周專案2 二叉樹的構造
問題及 all right reserved.檔名稱 二叉樹的構造.cpp 完成日期 2015年11月9日 版本號 v1.0 問題描述 由先序序列和中序序列構造二叉樹 由中序序列和後序序列構造二叉樹 輸入描述 各個序列元素排列 程式輸出 二叉樹的構造 include include btree.h ...
第十一周 二叉樹層次遍歷演算法的驗證
檔名稱 二叉樹層次遍歷演算法的驗證.cpp 作 者 郝環宇 完成日期 2016.11.10 版 本 號 v1.0 問題描述 執行並重複測試教學內容中涉及的演算法。改變測試資料進行重複測試的意義在於,可以從更多角度體會演算法,以達到逐漸掌握演算法的程度。使用你的測試資料,並展示測試結果,觀察執行結果,...