時間限制
400 ms
記憶體限制
65536 kb
**長度限制
8000 b
判題程式
standard
作者 陳越
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹(定義為左子樹鍵值大,右子樹鍵值小),你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。
輸入格式:
輸入第一行給出乙個不超過20的正整數n;第二行給出n個互不相同的正整數,其間以空格分隔。
輸出格式:
將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸出結果樹的層序遍歷結果,數字間以1個空格分隔,行的首尾不得有多餘空格。第二行輸出「yes」,如果該樹是完全二叉樹;否則輸出「no」。
輸入樣例1:
9輸出樣例1:38 45 42 24 58 30 67 12 51
38 45 24 58 42 30 12 67 51輸入樣例2:yes
8輸出樣例2:38 24 12 45 58 67 42 51
38 45 24 58 42 12 67 51no
//完全二叉樹
若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。
#include using namespace std;
int n;
struct node
;struct node *creat(int x,struct node *root)
if(root->data < x)
root->l = creat(x, root->l);
else root->r = creat(x, root->r);
return root;
};void in(struct node *root)
}int ff;
void bfs(struct node *root)
if(now->r != null)
}printf("\n");
}int main()
ff = 0;
bfs(root);
if(ff)
printf("no\n");
else printf("yes\n");
}
是否完全二叉搜尋樹(30 分)
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入格式 輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。輸出格式 將輸入的n個正整數順序插入乙個初始為空的二叉...
5 13 是否完全二叉搜尋樹 30分
5 13 是否完全二叉搜尋樹 30分 將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。將輸入的n個正整數順序插入...
7 2 是否完全二叉搜尋樹 (30 分)
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸...