c语言二叉排序树查找
发布时间: 2022-05-08 09:27:28
1. 用c语言写二叉排序树的基本操作要求实现查找插入和删除运算,统计二叉树中度为2的结点个数和叶子结点个数
#include<stdio.h>
#include<stdlib.h>
#definemaxNumberLength16
typedefstructnode
{
intdata;
structnode*lchild,*rchild;
}node;
node*create(void);
voidinsert(node*&root,intdata);
voidinOrder(node*root);
voidremove(node*&root,intdata);
voidsubRemove(node*root,node*&now);
boolsearch(node*root,intdata);
voidfindParent(node*root,node*data,node*&parent);
intmain(void)
{
node*root;
intengine=1;
intdata;
printf("输入元素:");
root=create();
printf("构造完成,中序遍历:");
inOrder(root);
putchar(' ');
while(engine!=0)
{
printf(" 1.插入2.删除3.查找0.退出 输入操作编号:");
fflush(stdin);
scanf("%d",&engine);
switch(engine)
{
case1:
printf("输入插入的元素值:");
scanf("%d",&data);
insert(root,data);
printf("插入完成,中序遍历:");
inOrder(root);
break;
case2:
printf("输入删除的元素值:");
scanf("%d",&data);
remove(root,data);
break;
case3:
printf("输入查找的元素值:");
scanf("%d",&data);
if(search(root,data))
printf("找到该元素,元素值%d ",data);
else
printf("没有该元素 ");
case0:
break;
default:
printf("没有该选项 ");
}
}
return0;
}
node*create(void)//构造
{
charnumToChar[maxNumberLength];
charinch;
intlocation,data;
node*root=NULL;
inch=getchar();
while((inch<'0'||inch>'9')&&inch!=' ')
inch=getchar();
while(inch!=' ')
{
location=0;
while(inch>='0'&&inch<='9')
{
numToChar[location++]=inch;
inch=getchar();
}
numToChar[location]='