seo网站关键词优化价格,建材做哪些网站好,如何有效的推广宣传,关于网站建设的外文文献目录
一、创建 二、插入
三、删除 二叉排序树#xff08;Binary Sort Tree#xff09;又称为二叉查找树#xff0c;它或者是一棵空树#xff0c;或者是具有下列性质的二叉树#xff1a;
——若它的左子树不为空#xff0c;则左子树上所有结点的值均小于它的根结构的值…目录
一、创建 二、插入
三、删除 二叉排序树Binary Sort Tree又称为二叉查找树它或者是一棵空树或者是具有下列性质的二叉树
——若它的左子树不为空则左子树上所有结点的值均小于它的根结构的值
——若它的右子树不为空则右子树上所有结点的值均大于它的根结构的值
——它的左、右子树也分为二叉排序树递归。
一、创建
//二叉树的二叉链表结点结构定义
typedef struct BiTNOde
{int data;struct BiTNode * lchild,*rchild;
}BiTNode, *BiTree;//递归查找二叉排序树T中是否存在key
//指针f指向T的双亲其初始值调用值为NULL
//若查找成功则指针p指向该数据元素结点并返回TRUE
//否则指针p指向查找路径上访问的最后一个结点并返回FALSE
Status SearchBST(BiTree T,int key,BiTree f,BiTree *p)
{if(!T) //查找不成功{*p f;return FALSE; } else if(key T-data){return SearchBST(T-lchild,key,T,p); //在左子树继续查找 }else{return SearchBST(T-rchild,key,T,p); //在右子树继续查找 }
} 二、插入
//insertBST
//当二叉排序树T中不存在关键字等于key的数据元素时
Status InsertBST(BiTree *T,int key)
{BiTree p,s;if(!SearchBST(*T,key,NULL,p)){s (BiTree)malloc(sizeof(BiTNode));s-data key;s-lchild s-rchild NULL;if(!p) //查找不到key {*T s; //插入s为新的根结点 }else if(key p-data){p-lchild s; //插入s为左孩子 } else {p-rchild s; //插入s为右孩子 } return TURE; }else{return FALSE; //树中已有关键字相同的结点不再插入 }}
三、删除 Status DeleteBST(BiTree *T,int key)
{if(!*T){return FALSE;}else{if(key (*T)-data){return Delete(T);}else if(key (*T)-data){return DeleteBST((*T)-lchild,key);}else if(key (*T)-data){return DeleteBST((*T)-rchild,key);}}} Status Delete(BiTree *p)
{BiTree q,s;if((*p)-rchild NULL){p *p;*p (*p)-lchild;free(q);}else if((*p)-lchild NULL){q *p;*p (*p)-rchild;free(q);}else{q *p;s (*p)-lchild;while(s-rchild){q s;s s-rchild;}(*p)-data s-data;if(q ! p){q-rchild s-lchild;}else{q-lchild s-lchild;}free(s);}return tree;
}