九度OJ 1467 二叉排序樹

2021-07-11 17:32:09 字數 1147 閱讀 3909

二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹:

若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值;

若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值;

左、右子樹本身也是一顆二叉排序樹。

現在給你n個關鍵字值各不相同的節點,要求你按順序插入乙個初始為空樹的二叉排序樹中,每次插入後成功後,求相應的父親節點的關鍵字值,如果沒有父親節點,則輸出-1。

輸入包含多組測試資料,每組測試資料兩行。

第一行,乙個數字n(n<=100),表示待插入的節點數。

第二行,n個互不相同的正整數,表示要順序插入節點的關鍵字值,這些值不超過10^8。

輸出共n行,每次插入節點後,該節點對應的父親節點的關鍵字值。

5

2 5 1 3 4

-1

2 2 5 3

2023年北京郵電大學計算機研究生機試真題

如果用靜態陣列模擬是會爆棧的,所以動態建樹,在建的過程中,帶著父節點的值,每建乙個節點,就把父節點的值輸出就可以了

#include

#include

#include

#include

#include

using

namespace

std;

typedef

struct treenode, * btree;

btree t1;

int num[105];

int n;

void createtree(btree &t, int a, int i)

else

if(t->data > num[i])

createtree(t->lchild, t->data, i);

else

if(t->data < num[i])

createtree(t->rchild, t->data, i);

}void build(btree &t)

}int main()

return

0;}

九度OJ 1467 二叉排序樹

題目1467 二叉排序樹 時間限制 1 秒 記憶體限制 128 兆 特殊判題 否 提交 2525 解決 1039 題目描述 二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹 1.若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值 2.若右子樹非空,則右...

題目1467 二叉排序樹

題目描述 二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹 1.若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值 2.若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值 3.左 右子樹本身也是一顆二叉排序樹。現在給你n個關鍵字值各不相同...

題目1467 二叉排序樹

題目描述 二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹 1.若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值 2.若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值 3.左 右子樹本身也是一顆二叉排序樹。include includ...