二叉排序樹,顧名思義,是一種排列好順序的二叉樹。它的排序規則是:每個結點的左子樹上的值都比它本身的值小,右子樹上的值都比它本身的值大。
#include #include #define true 1
#define false 0
typedef struct binode
binode, *bitree;
int searchbst (bitree t, int key, bitree f, bitree *p)
else if(t->data == key)
else if (key < t->data)
else
}void insertbst (int key, bitree *t)
else if(key < s->data)
else
}}void creatbst (bitree *t, int *arry)
}void preordertree (bitree t)
printf("%d ", t->data);
preordertree(t->lchild);
preordertree(t->rchild);
}void delete (int key, bitree *p) //刪除查詢的結點
else if(!(*p)->lchild)
else
(*p)->data = s->data;
if(q != *p)
else
free(s);
}}void deletrbst (bitree *t, int key)
else if(key == (*t)->data)
else if(key < (*t)->data)
else
}int main ()
creatbst(&t, arry);
preordertree(t);
printf("\nenter delete num:\n");
scanf("%d", &key);
deletrbst(&t, key);
preordertree(t);
return 0;
}
二叉排序樹基本操作
1.儲存結構 二叉鍊錶 include include typedef struct bitnode bitnode,bitree 2.二叉排序樹查詢演算法 遞迴查詢二叉排序樹t中是否存在key status search bitree t,int key,bitree f,bitree p p指向...
二叉排序樹基本操作
題目描述 編寫一棵二叉排序樹,來支援以下 6 種操作 插入 x 數 刪除 x 數 若有多個相同的數,因只刪除乙個 如果 x 不存在則不需要刪除 查詢 x 數的排名 排名定義為比當前數小的數的個數 1 如果 x 不存在則輸出 1 查詢排名為 x 的數 如果 x 大於樹中元素個數,則輸出 1 求 x 的...
二叉排序樹的基本操作
二叉排序樹 其中有插入 刪除 查詢操作 include include define false 0 define ture 1 define maxsize 10 typedef struct bitnode bitnode,bitree 查詢 f指向t的雙親,初始時為null 這裡用f,p,是問...