资源简介
设计一个读入一串整数构成一颗二叉排序树的程序,从二叉排序树中删除一个结点,使该二叉树仍保持二叉排序树的特性。
代码片段和文件信息
#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
评论
共有 条评论