L3 010 是否完全二叉搜尋樹

2021-07-29 11:35:43 字數 1095 閱讀 4247

l3-010. 是否完全二叉搜尋樹

將一系列給定數字順序插入乙個初始為空的二叉搜尋樹(定義為左子樹鍵值大,右子樹鍵值小),你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。

輸入格式:

輸入第一行給出乙個不超過20的正整數n;第二行給出n個互不相同的正整數,其間以空格分隔。

輸出格式:

將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸出結果樹的層序遍歷結果,數字間以1個空格分隔,行的首尾不得有多餘空格。第二行輸出「yes」,如果該樹是完全二叉樹;否則輸出「no」。

輸入樣例1:

9

38 45 42 24 58 30 67 12 51

輸出樣例1:
38 45 24 58 42 30 12 67 51

yes

輸入樣例2:
8

38 24 12 45 58 67 42 51

輸出樣例2:
38 45 24 58 42 12 67 51

no

解題思路

建立二叉搜尋樹,利用陣列就可以,下標為節點編號,對於完全二叉樹的判斷。只要前n個節點分別是輸入的n個數,就是完全二叉樹

**:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

const int maxn = 30;

const int inf = 0x3f3f3f3f;

int n,x;

int tree[1<<20];///這裡因為可能每一層只有乙個數

void build(int node)

int main()

{ scanf("%d",&n);

for(int i = 0; i

L3 010 是否完全二叉搜尋樹

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入格式 輸入第一行給出乙個不超過2...

L3 010 是否完全二叉搜尋樹

將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入格式 輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。輸出格式 將輸入的n個正整數順序插入乙個初始為空的二叉...

L3 010 是否完全二叉搜尋樹 遞迴

輸出樣例1 38 45 24 58 42 30 12 67 51 yes輸入樣例2 838 24 12 45 58 67 42 51 輸出樣例2 38 45 24 58 42 12 67 51 no include include include using namespace std int k ...