手机号码为185*****804的用户, 现在她通过我站悬赏问答网发布了一个紧急帮助信息,标题是:【C语言程序实现利用二叉排序树对用户输入的字符串中 0-9 数字进行统计,并返回相应的统计结果(VC++6.0)】,具体需求内容是【#include <stdio.h>#include <mal...】,但是由于本站人力物力有限,由于其问题太过于专业性太强,也或者是我们根本无暇顾及该用户的具体需求,导致本站根本无法为该用户提供最有效的服务。现在她(他)通过本站悬赏问答网平台发布了这一需求,希望有能人之士能够帮他解决这一个问题,并愿意付出10元作为报酬,不甚感激。
如果您觉得这个提问很好,可以点击左方的按钮进行推广,支持微信,短信和邮件推广。
注:10元只是象征性的价格标示,不代表实际成交价格,实际成交价格以能回答之人的定价为准。如果答案确实好,并且列出了一部分可信的免费内容(足以让购买回答答案者用户放心购买),则您可以放心购买。如果通过本站购买产生了交易纠纷,本站愿意承担一切线上交易的成交财务风险(限定在悬赏以后发生的购买金额范围以内,不承担线下交易的人身风险以及财务风险等任何风险)。
如果你无法确定或者不知道回答的内容是不是你想要的,可以在线咨询回答者以确定具体情况,根据具体情况请回答者做必要的修改或者补充。 如果确实已经发生了交易纠纷,您可以联系本站 仲裁处理。
#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);
}