「資料結構與演算法」平時測驗三

2021-10-06 23:13:49 字數 1235 閱讀 6019

假設二叉樹的資料元素為字元,採用二叉鏈式儲存結構。二叉樹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...