删除二叉树节点完整c语言程序以及例子,C语言C++实现二叉树构造与查找删除节点.doc...
data)q->lch=s;
else q->rch=s;
printf("插入成功!\n");
return 1;
}
else {printf("插入失败!\n");return 0;}
}
int deletebst(pointer &p,Etype key)
{
if(!p){return 0;}
else if(p->data==key){deletedata(p);return 1;}
else if(keydata) return deletebst(p->lch,key);
else return deletebst(p->rch,key);
}
void deletedata(pointer &p)
{
pointer q,s;
if(!p->rch)
{
q=p;p=p->lch;free(q);
printf("查找成功,已删除该结点!\n");
return;
}
else if(!p->lch)
{
q=p;p=p->rch;free(q);
printf("查找成功,已删除该结点!\n");
return;
}
else
{
q=p;s=p->lch;
while(s->rch){q=s;s=s->rch;}
p->data=s->data;
if(q!=p)q->rch=s->lch;
else q->lch=s->lch;
delete s;
printf("查找成功,已删除该结点!\n");
return;
}
printf("无此结点!\n");
}
BiTNode *creat_bt1()//利用数组建立
{ BiTNode *t,*p,*v[20]; int i,j; Etype e;
printf("\n 输入结点的序号i,结点的数据?"); scanf("%d,%d",&i,&e);
while(i!=0 && e!=0)
{ p=(BiTNode *)malloc(sizeof(BiTNode));
p->data=e; p->lch=NULL; p->rch=NULL;
v[i]=p;
if (i==1) t=p;
else{ j=i/2;
if(i%2==0) v[j]->lch=p;
else v[j]->rch=p
;
}
printf("\n i,data=?"); scanf("%d,%d",&i,&e);
}
return(t);
}
//模仿线序遍历递归建立二叉树
BiTNode *creat_bt2()
{ BiTNode *t; int e;
printf("\n data="); scanf("%d",&e);
if(e==0) t=NULL;
else { t=(BiTNode *)malloc(sizeof(BiTNode));
t->data=e;
printf("输入其左孩子 无左孩子输入0");
t->lch=creat_bt2();
printf("输入最下层未知左孩子结点的左孩子 无左孩子弟输入0");
t->rch=creat_bt2();
}
return(t);
}
void inorder(BiTNode *p)
{
if (p) { inorder(p->lch);
printf(" %3d",p->data);
inorder(p->rch);
}
}
//利用中序递归遍历二叉树的方法,计算树中结点个数
void numb(BiTNode *p)
{ if (p) { numb(p->lch);
{ printf("%3d",p->data);
n++;
if(p->lch==NULL && p->rch==NULL) n0++;
if((p->lch==NULL && p->rch!=NULL)||
(p->lch!=NULL && p->rch==NULL)) n1++;
if(p->lch!=NULL && p->rch!=NULL) n2++;
}
numb(p->rch);
}
}
删除二叉树节点完整c语言程序以及例子,C语言C++实现二叉树构造与查找删除节点.doc...相关推荐
- 8255a初始化c语言程序,8255A的c语言程序.doc
8255A的c语言程序 8255A的c语言程序 [实例24]用8243扩展I/O端口 #include sbit ContrBit0=P1^0; sbit ContrBit1=P1^1; sbit C ...
- 二叉树c语言程序插入某个成员,关于C ++:二叉树:插入节点算法
我正在尝试实现二叉树(如果它是普通的二叉树或二叉搜索树,则不重要),并且我在创建节点并将其链接到树的功能上遇到了一些麻烦. 这是我到目前为止编写的代码: class BinaryTree { clas ...
- c语言程序的引言,C语言程序设计-第1章-引言
<C语言程序设计-第1章-引言>由会员分享,可在线阅读,更多相关<C语言程序设计-第1章-引言(80页珍藏版)>请在人人文库网上搜索. 1.c语言编程,2,1 .你为什么学这门 ...
- c语言程序编写字体,c语言程序设计练习题
c语言程序设计练习题 篇一:c语言程序设计基础单元总结与练习题及答案 <C语言程序设计>单元总结与练习题 答 案 单元一 程序设计宏观认识 单元总结提升 本单元中,核心内容有C语言程序框架 ...
- 按键连续点击的c语言程序,长按键C语言程序
长按键C语言程序 zhchxgh | 2009-07-04 01:46:51 阅读:8246 发布文章 一共用了四个按钮. #define _KEYDOWN_TEST_TIME (20 ...
- 编写一个分奇偶的c语言程序,程序设计入门——C语言 第3周编程练习 1 奇偶个数(5分)...
1 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果 ...
- 怎么用centos7运行c语言程序_写C语言程序,如何提升程序运行效率?我的一点经验分享给你们!...
在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考: 1.C于代码在程序中的优化 现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码 ...
- 单纯形 c语言 程序,单纯形法完全c语言程序
单纯形法完全c语言程序 更新时间:2017/2/8 13:37:00 浏览量:566 手机版 单纯形法完全c语言程序,能运行 #include "math.h" #includ ...
- 程序设计基础(c语言),程序设计基础(C语言)
<程序设计基础(C语言)>由会员分享,可在线阅读,更多相关<程序设计基础(C语言)(26页珍藏版)>请在人人文库网上搜索. 1.程序设计基础(C语言),东北大学高级语言程序设计 ...
最新文章
- python的unicode_python的unicode及其编码解码
- Docker源码分析(三):Docker Daemon启动
- HTML5_0 笔记
- UIButton或UILabel加个下划线
- 11-mysql-查询进阶六-多表连接查询-自关联查询-练习题
- ipvsadm命令及lvs-nat类型web服务器集群
- 主流区块链底链技术横评 hyperledger fabric、fisco bcos、chainmaker
- 信息化建设项目前期方案编写1:设计要点
- ImportError:cannot import name ‘namedtuple‘from ‘collections‘(C:\Python\Pyth...
- buuctf web1
- 初创公司股权分配协议应该如何设计
- 18日精读掌握《费曼物理学讲义-卷一》计划(2019/6/12-2019/6/29)
- 关于在使用ztree中同级排序的疑问
- 如何下载Windows 10?Windows 10微软官方下载地址、下载官方最新的Windows 10操作系统的具体步骤
- abupy文件结构功能
- 《精通python设计模式》读书笔记之——结构型设计模式
- 天大计算机英语面试,天大考研复试英文自我介绍
- Ubuntu 使用apt-get 安装MySQL
- MongoDB的安装、配置运行 与 Robomongo的下载安装
- 大IPD之——解析华为以客户为中心的管理精髓(十)