| ||||||||||
| 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 | |||||||||
谁帮忙看看,看哪组数据过不了.............#include<stdio.h>
#include<string.h>
typedef struct item
{
long count;
char number[100];
struct item *rchild;
struct item*lchild;
}node,*link;
int map[30];
void init()
{
map['A'-'A']=2;
map['B'-'A']=2;
map['C'-'A']=2;
map['D'-'A']=3;
map['E'-'A']=3;
map['F'-'A']=3;
map['G'-'A']=4;
map['H'-'A']=4;
map['I'-'A']=4;
map['J'-'A']=5;
map['K'-'A']=5;
map['L'-'A']=5;
map['M'-'A']=6;
map['N'-'A']=6;
map['O'-'A']=6;
map['P'-'A']=7;
map['Q'-'A']=7;
map['R'-'A']=7;
map['S'-'A']=7;
map['T'-'A']=8;
map['U'-'A']=8;
map['U'-'A']=8;
map['W'-'A']=9;
map['X'-'A']=9;
map['Y'-'A']=9;
map['Z'-'A']=9;
}
void stringprocess(char b[])
{
int i=0,len=0,len2,j=0;
char a[100],s;
while(b[i]!='\0')
{
s=b[i];
if(j==3)
{
a[j]='-';
j++;
continue;
}
if(s=='-')
{
i++;
continue;
}
else if(s>='0'&&s<='9')
{
a[j]=s;
j++;
i++;
}
else
{
a[j]=map[s-'A']+48;
j++;
i++;
}
}
a[j]='\0';
strcpy(b,a);
}
int create_bttree(link * bt,long k)
{
char temp[100];
long i,flag=0,nodes;
link p,pre,newnode;
gets(temp);
stringprocess(temp);
*bt=(link)malloc(sizeof(node));
strcpy((*bt)->number,temp);
(*bt)->count=1;
(*bt)->rchild=NULL;
(*bt)->lchild=NULL;
nodes=1;
for(i=1;i<k;i++)
{
gets(temp);
stringprocess(temp);
p=*bt;
flag=0;
while(p!=NULL)
{
if(strcmp(p->number,temp)>0)
{
pre=p;
p=p->lchild;
flag=-1;
}
else if(strcmp(p->number,temp)<0)
{
pre=p;
p=p->rchild;
flag=1;
}
else
{
flag=0;
p->count++;
break;
}
}
if(flag==0){continue;}
else
{
nodes++;
newnode=(link)malloc(sizeof(node));
newnode->count=1;
strcpy(newnode->number,temp);
newnode->lchild=NULL;
newnode->rchild=NULL;
if(flag==-1){pre->lchild=newnode;}
else if(flag==1){pre->rchild=newnode;}
}
}
if(nodes==k){return 0;}
else return 1;
}
int inorder(link bt)
{
if(bt!=NULL)
{
inorder(bt->lchild);
if(bt->count>1)
printf("%s %ld\n",bt->number,bt->count);
inorder(bt->rchild);
}
}
main()
{
long n;
int i=0;
link btr;
scanf("%ld",&n);
getchar();
init();
i=create_bttree(&btr,n);
if(i==0)
{
printf("No duplicates.\n");
}
else
{
inorder(btr);
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator