九度OJ 1201 二叉排序樹

2021-07-29 10:12:04 字數 1088 閱讀 3927

二叉排序樹是一棵特殊的二叉樹,它是一棵二叉樹但同時滿足如下條件:對於樹上任意乙個結點,其上的數值必須大於等於其左子樹上任意結點的數值,必須小於等於其右子樹上任意結點的數值

由於各個數字插入的順序不同,所得到的二叉排序樹的形態也很可能不同,所以不同的插入順序對二叉排序樹的形態有重要的影響。但是,所有的二叉排序樹都有乙個共同的特點:若對二叉排序樹進行中序遍歷,那麼其遍歷結果必然是乙個遞增序列,這也是二叉排序樹名字的由來,通過建立二叉排序樹就能

#include

#include

struct node//二叉樹結構體

tree[110];//靜態陣列

int loc;//靜態陣列中被使用的元素個數

node *creat()//申請未使用的結點

void postorder(node *t)//後序遍歷

if(t->rchild!=null)

printf("%d ",t->c);

}void inorder(node *t)//中序遍歷

printf("%d ",t->c);

if(t->rchild!=null) }

void preorder(node *t)//前序遍歷

if(t->rchild!=null) }

node *insert(node *t,int x)//插入數字

else if(x

c)//若x小於根節點的數值

t->lchild=insert(t->lchild,x);//插入到左子樹上

else if(x>t->c)//若x大於根節點的數值

t->rchild=insert(t->rchild,x);//插入到右子樹上

return t;//返回根結點指標

}int main()

{ int n;

while(scanf("%d",&n)!=eof)

{ loc=0;

node *t=null;//二叉排序樹根結點為空

for(int i=0;i

九度OJ 1201 二叉排序樹

輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。輸入第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。可能有多組測試資料,對於每組資料,將題目所給資料建立乙個二叉排序樹,並對二叉排序樹進行前序 中序和後序遍歷。每種遍歷結果輸出一行。每行最後乙個資料之後有乙個空格。5 1 6...

題目1201 二叉排序樹 九度

題目描述 輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。輸入 輸入第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。輸出 可能有多組測試資料,對於每組資料,將題目所給資料建立乙個二叉排序樹,並對二叉排序樹進行前序 中序和後序遍歷。每種遍歷結果輸出一行。每行最後乙個資料之後...

九度OJ 1467 二叉排序樹

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