判斷是否是堆 PAT A1147 Heaps

2021-10-05 21:37:09 字數 1577 閱讀 4446

樹、完全二叉樹以及堆的性質

完成二叉樹的靜態實現特徵是本題的關鍵,感覺使用結構體,可能會超時呢~~

//不需要建樹直接根據完全二叉樹的性質使用

//陣列下標從1開始

#include

"bits/stdc++.h"

using

namespace std;

const

int maxn =

1e3+10;

int m;

int n;

int data[maxn]

;vector<

int> post;

bool isheap;

void

checkmax

(int root)

else

if(r<=n && data[r]

>data[root]

)checkmax

(l);

checkmax

(r);

post.

push_back

(data[root]);

return;}

}void

checkmin

(int root)

else

if(r<=n && data[r]

)checkmin

(l);

checkmin

(r);

post.

push_back

(data[root]);

return;}

}int

main()

isheap =

true

; post.

clear()

;//首先來看預先是max heap,還是min heap

if(data[1]

> data[n]

)else

}else

else

}for

(int j=

0;j)else}}

return0;

}

柳神的**,她將判斷放在讀入裡了

#include

using

namespace std;

int a[

1005

], m, n;

void

postorder

(int index)

intmain()

if(maxn ==1)

printf

("max heap\n");

else

if(minn ==1)

printf

("min heap\n");

else

printf

("not heap\n");

postorder(1

);}return0;

}

判斷是否是閏年

使用者輸入月份,判斷當前月份為幾月,並輸出有多少天。如果使用者輸入2月份,則請使用者輸入年份,判斷平年則輸出28天,閏年則輸出29天。能被4整除但不能被100整除,或者能被400整除 months input 請輸入當前月份 while notmonths.isdigit or int months...

判斷是否是素數

第一次嘗試 define crt secure no warnings include include intisprimenum int num for int i 2 i num i return1 int main else for int i 100 i 200 i return0 此 利用...

判斷是否是回文

輸入 請輸入數時用空格隔開輸入你要判斷是否是回文的個數 1 5 9 9 5 1 輸出 您輸入的是回文 1 include stdio.h 2 define n 6 通過更改 n 的值,可以改變輸入的數的個數3 本題思想用陣列的第一位與最後一位相比,然後依次第二與倒數第二。4 但每輸入乙個數要用空格隔...