⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5-4-1.c

📁 2005软件工程师考试下午编程题源代码
💻 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 + -