排序二叉樹的特徵是:
某個節點的左子樹的所有節點值都不大於本節點值。
某個節點的右子樹的所有節點值都不小於本節點值。
為了能形象地觀察二叉樹的建立過程,小明寫了一段程式來顯示出二叉樹的結構來。
#include
#include
#define n 1000
#define height 100
#define width 1000
struct bitree
;int max(int a, int b)
struct bitree* init(struct bitree* p, int v)
void add(struct bitree* me, struct bitree* the)
else
}//獲得子樹的顯示高度
int getheight(struct bitree* me)
//獲得子樹的顯示寬度
int getwidth(struct bitree* me)
int getrootpos(struct bitree* me, int x)
//把緩衝區當二維畫布用
void printinbuf(struct bitree* me, char buf[width], int x, int y)
void showbuf(char x[width])
if(x[i][0]) printf("%s\n",x[i]);
else break;}}
void show(struct bitree* me)
對於上邊的測試資料,應該顯示出:
|/--------------500---\
| |
/--200---\ /--509\
| | | |
100 /--250---\ 507 600\
| | |
220 /--450 650
|440
請分析程式邏輯,填寫劃線部分缺失的**。
注意,只填寫缺少的部分,不要填寫已有的**或符號,也不要加任何說明文字。
printinbuf(me->r,buf,p2+strlen(sv),y+2)
(六決)藍橋真題 穿越雷區
x星的坦克戰車很奇怪,它必須交替地穿越正能量輻射區和負能量輻射區才能保持正常運轉,否則將報廢。某坦克需要從a區到b區去 a,b區本身是安全區,沒有正能量或負能量特徵 怎樣走才能路徑最短?已知的地圖是乙個方陣,上面用字母標出了a,b區,其它區都標了正號或負號分別表示正負能量輻射區。例如 a b 坦克車...
藍橋杯 顯示二叉樹
排序二叉樹的特徵是 某個節點的左子樹的所有節點值都不大於本節點值。某個節點的右子樹的所有節點值都不小於本節點值。為了能形象地觀察二叉樹的建立過程,小明寫了一段程式來顯示出二叉樹的結構來。include include define n 1000 define height 100 define wi...
藍橋杯真題 完全二叉樹的權值
給定一棵包含 n 個節點的完全二叉樹,樹上每個節點都有乙個權值,按從上到下 從左到右的順序依次是 a1,a2,an,如下圖所示 現在小明要把相同深度的節點的權值加在一起,他想知道哪個深度的節點權值之和最大?如果有多個深度的權值和同為最大,請你輸出其中最小的深度。注 根的深度是 1。輸入格式 第一行包...