第一范文网 - 专业文章范例文档资料分享平台

二叉排序树的建立与删除

来源:用户分享 时间:2025/6/17 21:20:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

周国庆 《二叉排序树的建立与删除》 第16页 共19页

p=t; f=NULL; while(p){

if(p->data==k) break; f=p; if(p->data>k) p=p->lchild; else p=p->rchild;

}

if(p==NULL){ }

printf(\关键字不存在!\\n\return t;

if(p->lchild==NULL){

if(f==NULL)

t=p->rchild;

else if(f->lchild==p)

f->lchild=p->rchild;

else f->rchild=p->rchild; free(p); } else{

q=p; s=p->lchild; while(s->rchild){ } if(q==p)

q->lchild=s->lchild; q=s; s=s->rchild;

周国庆 《二叉排序树的建立与删除》 第17页 共19页

else q->rchild=s->lchild;

p->data=s->data; }

void createbst(bitree *root) //二叉排序树的建立 {

int i,data,cnt;

*root=NULL; //置空树 printf(\请输入数据个数: \ //设置输入数据个数 scanf(\ printf(\请输入数据: \

for(i=0;i

void table() //显示选项列表 {

printf(\ 二叉树操作:\\n\

printf(\ 1. 创建二叉树 \\n\ printf(\ 2. 搜索节点 \\n\ printf(\ 3. 插入节点 \\n\ printf(\ 4. 删除节点 \\n\ printf(\ 0. 退出 \\n\}

}

free(s);

return t;

周国庆 《二叉排序树的建立与删除》 第18页 共19页

int main() {

int data,menu;bitree root;

table(); //调用table函数显示操作列表 printf(\请输入相应操作:\ scanf(\

while(!(menu>=0 && menu<=4)){ //输入序号不存在,操作出错

printf(\操作有问题,请重新输入:\ scanf(\}

while(menu!=0){ //建立循环,选择不同的操作

switch(menu){

case 1:{ //选择操作1,即二叉排序树的创建

printf(\创建二叉树: \\n\ createbst(&root); display(root); printf(\ break; }

case 2:{ //选择操作2,即在二叉排序树中进行查找

printf(\请输入你想搜索的关键字:\ scanf(\ int t=searchbst(root,data); if(t!=INF){

printf(\查找成功: \ printf(\ }

else printf(\关键字不存在\\n\ break; }

周国庆 《二叉排序树的建立与删除》 第19页 共19页

case 3:{ //选择操作3,即在二叉排序树中进行插入操作

printf(\请输入你想插入的关键字:\ scanf(\ insertbst(&root,data); display(root); printf(\ break; }

case 4:{ //选择操作4,即在二叉排序树中进行删除操作

printf(\请输入你想删除的关键字:\ scanf(\ deletebst(root,data); display(root); printf(\ break; } }

printf(\请继续进行相应操作:\ scanf(\ } return 0; }

搜索更多关于: 二叉排序树的建立与删除 的文档
二叉排序树的建立与删除.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c29w7u91jgn0c4dk2wbj2_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top