C语言程序实现利用二叉排序树对用户输入的字符串中 0-9 数字进行统计,并返回相应的统计结果(VC++6.0) 30

#include<stdio.h>#include<malloc.h>#defineM100typedefstructBintree{intdata;structBint... #include <stdio.h>
#include <malloc.h>
#define M 100

typedef struct Bintree
{
int data;
struct Bintree *lchild,*rchild;
}bin,*Bin; /*定义结构体,结构体指针*/

Bin serch_node(Bin &t,int i)//&?
{
if(t->lchild==0 && t->rchild==0)
return t;
Bin pre;
pre=(Bin)malloc(sizeof(bin));//查找插入点
while(t)
{
pre=t;
if(i<t->data)
t=t->lchild;
else
t=t->rchild;
}
return pre;
}

Bin create_tree(int a[],int length) //*?
{
int i=0;
Bin root,t,pre;
root=(Bin)malloc(sizeof(bin));
t=(Bin)malloc(sizeof(bin));
pre=(Bin)malloc(sizeof(bin));//在插入点插入节点
root->data=a[i];
root->lchild=NULL;
root->rchild=NULL;
for(i=1;i<length;i++)
{
t->data=a[i];
t->lchild=NULL;
t->rchild=NULL;
pre=serch_node(root,a[i]);
if(a[i]<pre->data)
pre->lchild=t;
else
pre->rchild=t;
}
return root;
}

void MiddleOrderB_Tree(Bin T)
{
if (T == NULL)
{
return;
}
else
{
MiddleOrderB_Tree(T->lchild);//中序遍历输出二叉排序树
printf("%d ",T->data);
MiddleOrderB_Tree(T->rchild);
}
}

void count_BTree(Bin T)
{
int static count[10]={0,0,0,0,0,0,0,0,0,0};
int i;
if (T == NULL)
{
return;
}
else
{
MiddleOrderB_Tree(T->lchild);//中序遍历查找0-9并统计个数
switch(T->data)
{
case 0:count[0]++;
break;
case 1:count[1]++;
break;
case 2:count[2]++;
break;
case 3:count[3]++;
break;
case 4:count[4]++;
break;
case 5:count[5]++;
break;
case 6:count[6]++;
break;
case 7:count[7]++;
break;
case 8:count[8]++;
break;
case 9:count[9]++;
break;
default:break;
}
MiddleOrderB_Tree(T->rchild);
}
for(i=0;i<10;i++)
printf("此二叉排序树中,%d的个数为%d个",i,count[i]);
}

void main()
{
Bin root;
root=(Bin)malloc(sizeof(bin));
int a[M],i,c;
printf("请输入一组数来构建一颗二叉排序树,-1结束");
scanf("%d",&c);
for(i=0;c!=-1;i++)
{
a[i]=c;
scanf("%d",&c);
}
for(i=0;a[i]!=-1;i++)
{
printf("%d",a[i]);
}
root=create_tree(a,i);
MiddleOrderB_Tree(root);
count_BTree(root);
}
有点急……可以追加分数
展开
 我来答
暮星孤月
2017-12-29 · 超过14用户采纳过TA的回答
知道答主
回答量:68
采纳率:62%
帮助的人:16.7万
展开全部
天呐什么年代了还在用vc6
更多追问追答
追答
早点转vs吧
追问
课堂要求,所以还麻烦看看问题出在哪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式