📄 1.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
typedef struct node *tree;
struct node{
char data;
int count;
tree lchild,rchild;
};
tree creat(tree ,char );
void inorder(tree);
void inorder1(tree);
int n=0,m=0;
FILE *fp1;
void main()
{
FILE *fp;
char ch;
tree r;
char filename[20];
printf("请输入所需统计的文件名:");
gets(filename);
fp=fopen(filename,"rb");
if(fp==NULL)
{
printf("该文件不存在");
exit(0);
}
r=NULL;
ch=fgetc(fp);
while(!feof(fp))
{ n++;
r=creat(r,ch);
ch=fgetc(fp);
}
fclose(fp);
fp1=fopen("out1.txt","w");
if(fp1==NULL)
{
printf("文件打开失败!");
exit(0);
}
inorder1( r);
fprintf(fp1,"%d\n",m);
inorder(r);
fclose(fp1);
}
void inorder(tree r)
{
if(r!=NULL)
{
inorder(r->lchild);
printf("%d %f\n",r->data,r->count/(1.0*n));
fprintf(fp1,"%d %f\n",r->data,r->count/(1.0*n));
inorder(r->rchild);
}
}
void inorder1(tree r)
{
if(r!=NULL)
{
inorder1(r->lchild);
m++;
inorder1(r->rchild);
}
}
tree creat(tree r,char x)
{
tree p;
if(r==NULL)
{
p=(tree)malloc(sizeof(*p));
p->data=x;
p->count=1;
p->lchild=NULL;
p->rchild=NULL;
return(p);
}
else if(r->data>x)
r->lchild=creat(r->lchild,x);
else if(r->data<x)
r->rchild=creat(r->rchild,x);
else r->count+=1;
return(r);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -