5-13 是否完全二叉搜尋樹 (30分)
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹(定義為左子樹鍵值大,右子樹鍵值小),你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。
輸入第一行給出乙個不超過20的正整數n
;第二行給出n
個互不相同的正整數,其間以空格分隔。
將輸入的n
個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸出結果樹的層序遍歷結果,數字間以1個空格分隔,行的首尾不得有多餘空格。第二行輸出yes
,如果該樹是完全二叉樹;否則輸出no
。
9
38 45 42 24 58 30 67 12 51
38 45 24 58 42 30 12 67 51
yes
8
38 24 12 45 58 67 42 51
38 45 24 58 42 12 67 51
no
思路 : 建立二叉搜尋樹,如果他的所有結點的下標是連續的,那麼他就是一顆完全二叉樹。
#includeusing namespace std;
const int maxn = 5e6+5;
int tree[maxn], n;
void add(int r, int val)
if(val > tree[r]) add(r*2, val);
else add(r*2+1, val);
}int main(void)
bool ok = 1;
int r = 1
printf("\n%s\n", ok ? "yes" : "no");
}return 0;
}
是否完全二叉搜尋樹 30分
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入格式 輸入第一行給出乙個不超過...
是否完全二叉搜尋樹(30 分)
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入格式 輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。輸出格式 將輸入的n個正整數順序插入乙個初始為空的二叉...
7 2 是否完全二叉搜尋樹 (30 分)
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸...