題目
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹(定義為左子樹鍵值大,右子樹鍵值小),你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。
輸入格式:
輸入第一行給出乙個不超過20的正整數n;第二行給出n個互不相同的正整數,其間以空格分隔。
輸出格式:
將輸入的n個正整數順序插入乙個初始為空的二叉搜尋樹。在第一行中輸出結果樹的層序遍歷結果,數字間以1個空格分隔,行的首尾不得有多餘空格。第二行輸出yes,如果該樹是完全二叉樹;否則輸出no。
輸入樣例1:
938 45 42 24 58 30 67 12 51
輸出樣例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
#include
#include
#include
#include
using namespace std;
int n;
// 完全二叉樹標記
int flag3;
struct node
*tree;
struct node *
insert
(struct node *t,
int x)
else
else
}return t;
}void
bfs(node *t)
queue> q;
q.push
(t);
while
(!q.
empty()
)else
if(use->lchild !=
null)}
else
if(use->rchild !=
null)}
else}}
intmain()
bfs(tree)
; cout << endl;
if(flag3)
else
return0;
}
PTA 資料結構 是否完全二叉搜尋樹
7 2 是否完全二叉搜尋樹 30 分 將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果。輸入第一行給出乙個不超過20的正整數n 第二行給出n個互不相同的正整數,其間以空格分隔。將輸入的n個正整數順序插入...
二叉搜尋樹c 資料結構二叉搜尋樹
在n個動態的整數中搜尋某個整數?檢視其是否存在 假設使用動態陣列存放元素,從第 0 個位置開始遍歷搜尋,平均時間複雜度 o n 如果維護乙個有序的動態陣列,使用二分搜尋,最壞時間複雜度 o logn 但是新增 刪除的平均時間複雜度是 o n 針對這個需求,有沒有更好的方案?今天我們主要講的就是二叉搜...
7 3 是否完全二叉搜尋樹
將一系列給定數字順序插入乙個初始為空的二叉搜尋樹 定義為左子樹鍵值大,右子樹鍵值小 你需要判斷最後的樹是否一棵完全二叉樹,並且給出其層序遍歷的結果 include include include include include using namespace std struct node stru...