| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:Memory Limit Exceeded!!!!!!In Reply To:Memory Limit Exceeded!!!!!! Posted by:DestinyDesigner at 2008-10-12 23:38:50 > 为什么啊????
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct node
{
char name[31];
int count;
struct node *right,*left;
}Node;
Node *tmp;
int total;
void insert(Node *p)
{
if(strcmp(tmp->name,p->name)==0) p->count++;
else if(strcmp(tmp->name,p->name)<0)
{
if(p->left==NULL)
{
p->left=tmp;
tmp->count++;
}
else insert(p->left);
}
else if(strcmp(tmp->name,p->name)>0)
{
if(p->right==NULL)
{
p->right=tmp;
tmp->count++;
}
else insert(p->right);
}
}
void walk(Node *p)
{
if(p!=NULL)
{
walk(p->left);
printf("%s %.4f\n",p->name,p->count*100.0/total);
walk(p->right);
}
}
int main()
{
char s[31];
int flag=1;
total=0;
Node *root=NULL;
while(gets(s)!=NULL)
{
total++;
tmp=(Node *)malloc(sizeof(Node));
strcpy(tmp->name,s);
tmp->count=0;
tmp->left=tmp->right=NULL;
if(flag)
{
root=tmp;
flag=0;
}
insert(root);
}
walk(root);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator