problem description
根據給定的輸入序列建立一棵平衡二叉樹,求出建立的平衡二叉樹的樹根。
input
輸入一組測試資料。資料的第1行給出乙個正整數n(n <= 20),n表示輸入序列的元素個數;第2行給出n個正整數,按資料給定順序建立平衡二叉樹。
output
輸出平衡二叉樹的樹根。
sample input
588 70 61 96 120
sample output
70提示:平衡二叉樹是建立在二叉查詢樹的基礎上的。二者的區別是,平衡二叉樹左、右子樹高度相差不能大於1。若大於1,則經旋轉
ac**:
#includeusing namespace std;
typedef struct tree
tr;int dp(tr *&root)
void ll(tr *&root)
void rr(tr *&root)
void lr(tr *&root)
void rl(tr *&root)
tr *creat(tr *&root,int x)
else if(root->data>x)
}else
int main()
couttr;
int dp(tr *root)
int max(int a,int b)
tr *ll(tr *root)
tr *rr(tr *root)
tr *rl(tr *root)
tr *lr(tr *root)
tr *creat(tr *root,int x)
else if(root->data>x)
}else
int main()
printf("%d\n",root->data);
return 0;
}
————
餘生還請多多指教!
平衡二叉樹 資料結構實驗之查詢二 平衡二叉樹
剛開始接觸平衡二叉樹,沒有什麼太多要分析的。部落格裡有很多大佬們都寫的很好。平衡二叉樹就是每個節點的子樹的高度差不超過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...