二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹:
若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值;
若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值;
左、右子樹本身也是一顆二叉排序樹。
現在給你n個關鍵字值各不相同的節點,要求你按順序插入乙個初始為空樹的二叉排序樹中,每次插入後成功後,求相應的父親節點的關鍵字值,如果沒有父親節點,則輸出-1。
輸入包含多組測試資料,每組測試資料兩行。
第一行,乙個數字n(n<=100),表示待插入的節點數。
第二行,n個互不相同的正整數,表示要順序插入節點的關鍵字值,這些值不超過10^8。
輸出共n行,每次插入節點後,該節點對應的父親節點的關鍵字值。
52 5 1 3 4
-12023年北京郵電大學計算機研究生機試真題2 2 5 3
如果用靜態陣列模擬是會爆棧的,所以動態建樹,在建的過程中,帶著父節點的值,每建乙個節點,就把父節點的值輸出就可以了
#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...