是否完全二叉搜尋樹(資料結構 二叉搜尋樹)

2021-10-02 09:35:25 字數 1177 閱讀 2280

題目

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

輸入格式:

輸入第一行給出乙個不超過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...