c語言二叉排序樹,陣列模擬,二叉樹插入法

2021-08-14 20:26:19 字數 1106 閱讀 4502

二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹: 1. 若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值; 2. 若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值; 3. 左、右子樹本身也是一顆二叉排序樹。 現在給你n個關鍵字值各不相同的節點,要求你按順序插入乙個初始為空樹的二叉排序樹中,每次插入後成功後,求相應的父親節點的關鍵字值,如果沒有父親節點,則輸出-1。
輸入包含多組測試資料,每組測試資料兩行。

第一行,乙個數字n(n

<=100),表示待插入的節點數。

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

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

2 5 1 3 4

-122

53

利用陣列模擬樹**

#include #define n 100

struct nodetreenode[n];

int tree[n];

int main(int argc, const char * argv)

else

}if(tag == 0) treenode[lasttemp].left = i;

else treenode[lasttemp].right = i;

printf("%d\n",treenode[lasttemp].key);}}

return 0;

}

#include 

#include

typedef struct binode* bitree ,binode;

void insert(bitree

t,int a)

else

}else

else

}}int main(int argc, const char * argv)

return 0;

}

二叉樹,完全二叉樹,滿二叉樹,二叉排序樹

二叉樹 二叉樹是每個節點最多有兩個子樹的樹結構 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。完全二叉樹 除最後一層外,每一層上的結點數均達到最大值 在最後一層上只缺少右邊的若干結點 樹中所含的n個節點和滿二叉樹中編號...

二叉樹(四) 二叉排序樹

二叉排序樹或者非空二叉樹,或者為具有以下性質的二叉樹 1 若根結點的左子樹不空,則左子樹上所有結點的值都小於根結點的值 2 若根結點的右子樹不空,則右子樹上所有結點的值都大於或者等於根結點的值 每一棵子樹分別也是二叉排序樹。上述定義為遞迴定義 如下圖 該二叉樹的中序序列如下 10,30,35,38,...

二叉搜尋樹(二叉排序樹)

描述 判斷兩序列是否為同一二叉搜尋樹序列 題目類別 樹 難度 中級 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據...