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]='