📄 5-4-1.c
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/
#include <stdio.h>
#include <malloc.h>
#define INF "t2.in"
#define OUTF "t2.out"
typedef struct treenode{
int val;
int count;
struct treenode *left, *right;
} Binary;
void binary_tree ( Binary **t,int data ){
Binary *ptr,*p;
int d;
p = NULL;ptr = *t;
while(ptr)
if (data == ptr->val) {
ptr->count++;
return;
}
else {
p=ptr;
ptr =ptr->val<data ? ptr->right:ptr->left;
}
ptr =(Binary * )malloc(sizeof(Binary));
ptr->left = ptr->right = NULL;
ptr->val = data; ptr->count=1;
if ( p==NULL ) *t = ptr;
else if (data > p->val ) p->right = ptr;
else p->left = ptr;
}
void travel_tree( FILE *fpt,Binary *t) {
if (t == NULL) return;
travel_tree ( fpt, t->left);
fprintf(fpt,"%d %d\n",t->val,t->count );
travel_tree (fpt, t->right);
}
void main () {
FILE *fpt;
Binary *root = NULL;
int d;
if (( fpt = fopen (INF, "r")) == NULL ) {
printf( "Can't open file !\n") ;
exit(1);
}
while ( fscanf ( fpt,"%d" ,&d) == 1)
binary_tree( &root,d);
fclose (fpt);
fpt = fopen(OUTF,"wt" ) ;
travel_tree(fpt,root);
fclose(fpt) ;
travel_tree( stdout,root);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -