假設二叉樹的資料元素為字元,採用二叉鏈式儲存結構。二叉樹adt實現的大部分**已經給出,其中採用完全前序序列建立二叉樹。請補充寫出下列兩個操作函式。 注意: 答案區只寫出兩個函式,其他**不允許修改和重寫、提交!
(1)計算以某結點為根的二叉樹的高度;
(2)以前序順序輸出各個元素結點為根的子樹的高度;
例如:有如右圖的二叉樹
輸入:abd@@e@@c@f@@
輸出:height(a)=3
height(b)=2
height(d)=1
height(e)=1
height(f)=1
已給出的**如下:
#include
#include
using namespace std;
//資料元素型別
typedef char elemtype;
//二叉樹結點定義
typedef struct treenode
treenode;
//二叉樹類
class binarytree
;~binarytree()
void makeempty(treenode *t);
void create( ) ; //完全前序建立二叉樹,空指標用@表示
treenode *cp_create(treenode *t);
//****** 要補充的函式height ********
int height(treenode *t) ; //求二叉樹的高度
void output() ;
//****** 要補充的函式 pro_height **********
void pro_height(treenode *t); // 前序順序輸出各個元素結點為根的子樹的高度//二叉樹置空
void binarytree::makeempty(treenode *t)
//完全前序序列建立二叉樹,空指標用@表示
treenode *binarytree::cp_create(treenode *t)
else t = null;
return t;//******************** 需要補充寫出的兩個函式 ****************************
//主函式
int main()
void binarytree::
pro_height
(treenode *t)
資料結構與演算法(三)
變位詞是指兩個詞之間存在組成字母的 重新排列關係 如 heart和earth,python和typhon 為了簡單起見,假設參與判斷的兩個詞僅由小寫 字母構成,而且長度相等 詞1中的字元逐個在詞2中檢查是否存在,存在則標記防止重複檢查。如果每個字元都能找到,並且詞1詞2長度相同則是變位詞。否則不是。...
資料結構與演算法(三)
鍊錶由單向的鏈變成雙向鏈,使用這種資料結構,我們不再拘束於單鏈表的單向建立於遍歷等操作。在單鏈表中,有乙個資料域,還有乙個指標域,資料域用來儲存相關資料,而指標域負責鍊錶之間的 聯絡 在雙向鍊錶中,需要有兩個指標域,乙個負責向後連線,乙個負責向前連線。單鏈表的結構 struct list 雙向鍊錶的...
資料結構與演算法Python版 第二週測驗
1單選 2分 判斷下列 段的大o級別 test 0for i in range n for j in range n test test i ja.o n 2 b.o n 3 c.o n d.o n log n 正確答案 a 2單選 2分 判斷下列 段的大o級別 test 0for i in ran...