資料結構之 平衡二叉樹的建立

2021-07-26 17:54:49 字數 1150 閱讀 7232

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

time limit: 400ms memory limit: 65536kb

problem description

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

input

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

output

輸出平衡二叉樹的樹根。

example input

5

88 70 61 96 120

example output

#include

#include

<

string

.h>

#include

typedef struct node

st;int max(int a, int b)

int deep(st *root)

st *ll(st *root)

st *rr(st *root)

st *lr(st *root)

st *rl(st *root)

st *insert(int x, st *root)

else

}else

if(x > root->

data)}}

root->d =

max(deep(root->rt),deep(root->

lt)) +

1; return root;

}int main()

printf("%d\n", root->

data);

}return

0;}

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

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

資料結構 平衡二叉樹

1 空樹是平衡二叉樹。2 如果一棵樹不為空,並且其中所有的子樹都滿足各自的左子樹與右子樹的高度差都不超過 1。下面介紹乙個簡單應用,平衡二叉樹的相關操作以後補充。給定一顆二叉樹的頭結點 head,判斷一棵樹是否是平衡二叉樹。1.1 左子樹是否為平衡二叉樹 1.2 記錄左子樹的深度,最深到達哪一層,記...

資料結構之 平衡二叉樹總結

敲這個題時,預備知識是知道四種旋轉方式,分別是ll rr lr rl,對應每一種的變換方式要做到會旋轉,會寫關鍵的 這個題是參照一篇部落格寫的,然後自己又理解了一遍。include include include struct node int max int a,int b int deep st...