資料結構實驗之查詢二 平衡二叉樹

2021-09-05 10:02:30 字數 1126 閱讀 1706

time limit: 400 ms memory limit: 65536 kib

problem description

根據給定的輸入序列建立一棵平衡二叉樹,求出建立的平衡二叉樹的樹根。

input

輸入一組測試資料。資料的第1行給出乙個正整數n(n <= 20),n表示輸入序列的元素個數;第2行給出n個正整數,按資料給定順序建立平衡二叉樹。

output

輸出平衡二叉樹的樹根。

sample input

588 70 61 96 120

sample output

我覺得這道題重點在於要更新深度以及判斷什麼時候要進行操作,具體的左旋右旋其實就是指標的操作,自己在紙上畫一下就寫出來**了。

ac**

#include

#include

#include

typedef

struct treenode

tree;

intmax

(int a,

int b)

intdeep

(tree*t)

//求深度

else

}tree *

ll(tree*t)

tree *

rr(tree*t)

tree *

lr(tree*t)

tree *

rl(tree*t)

tree *

creat

(tree*t,

int x)

else

if(xdata)

else}}

else

if(x>t->data)

else}}

t->deepth=

max(

deep

(t->l)

,deep

(t->r))+

1;//注意這裡要更新深度

return t;

}int

main()

printf

("%d\n"

,t->data)

;return0;

}

平衡二叉樹 資料結構實驗之查詢二 平衡二叉樹

剛開始接觸平衡二叉樹,沒有什麼太多要分析的。部落格裡有很多大佬們都寫的很好。平衡二叉樹就是每個節點的子樹的高度差不超過1的二叉樹。可以快速搜尋數值的一種演算法,最糟的情況就是一直找到底,但也是log n 的。還是快很多。include include include define max a b a...

資料結構實驗之查詢二 平衡二叉樹

建立平衡二叉樹,我們採用依次插入節點的方式進行。而平衡二叉樹上插入節點採用遞迴的方式進行。遞迴演算法如下 1 若該樹為一空樹,那麼插入乙個資料元素為e的新節點作為平衡二叉樹的根節點,樹的高度增加1。2 若待插入的資料元素e和平衡二叉樹 bbst 的根節點的關鍵字相等,那麼就不需要進行插入操作。3 若...

資料結構實驗之查詢二 平衡二叉樹

time limit 400ms memory limit 65536k 根據給定的輸入序列建立一棵平衡二叉樹,求出建立的平衡二叉樹的樹根。輸入一組測試資料。資料的第1行給出乙個正整數n n 20 n表示輸入序列的元素個數 第2行給出n個正整數,按資料給定順序建立平衡二叉樹。輸出平衡二叉樹的樹根。5...