資源簡介
設計一個讀入一串整數構成一顆二叉排序樹的程序,從二叉排序樹中刪除一個結點,使該二叉樹仍保持二叉排序樹的特性。
代碼片段和文件信息
#include?
#include?
typedef?int?KeyType;
typedef?struct?tree
{?/*聲明樹的結構*/
struct?tree?*left;???/*存放左子樹的指針*/
struct?tree?*right;?/*存放又子樹的指針*/
KeyType?key;????????????/*存放節點的內容*/
}?BSTNode?*?BSTree;???/*聲明二叉樹的鏈表*/
/*?在二叉排序樹中插入結點*/
BSTree?insertBST(BSTree?tptrKeyType?key)
{/*若二叉排序樹tptr中沒有關鍵字為key的結點,則插入,否則直接返回*/
BSTree?fp=tptr;?/*p的初值指向根結點*/
while(p)?/*查找插入位置,循環結束時,p是空指針,f指向待插入結點的雙親*/
{
???if(p->key==key)???/*樹中已有key,無須插入*/
????????return?tptr;
???f=p;?/*f保存當前查找的結點,即f是p的雙親*/
???p=(keykey)?p->left:p->right;?
}
p=(BSTree?)malloc(sizeof(BSTNode));?/*生成新結點*/
p->key=key;?p->left=p->right=NULL;
if(tptr==NULL)?/*原樹為空,新插入的結點為新的根*/
???tptr=p;
else
???if(keykey)
????f->left=p;
???else
????f->right=p;
return?tptr;
}
/*建立二叉樹?*/
BSTree?cre
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4193??2018-06-13?21:35??d.c
評論
共有 條評論