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:总是WA请帮忙看一下,谢谢。In Reply To:总是WA请帮忙看一下,谢谢。 Posted by:Anonomous at 2007-07-17 10:02:01 > #include <stdio.h> > #include <stdlib.h> > #include <malloc.h> > #include <string.h> > > typedef struct _node { > char data[9]; > short repeat; > struct _node *left; > struct _node *right; > } Node; > > int flag = 0; > > void insert(Node** list, char str[], int len) { > int cmp; > if(!(*list)) { > *list = (Node*)malloc(sizeof(Node)); > strncpy((*list)->data, str, len); > (*list)->repeat = 1; > (*list)->left = (*list)->right = NULL; > } else { > cmp = strncmp(str, (*list)->data, len); > if(cmp == 0) { > (*list)->repeat++; > flag = 1; > return; > } else { > cmp < 0 ? insert(&((*list)->left), str, len) : insert(&((*list)->right), str, len); > } > } > } > > void inOrder(Node *t) { > if(t) { > inOrder(t->left); > if(t->repeat > 1) { > printf("%s %d\n", t->data, t->repeat); > } > inOrder(t->right); > } > } > > int main() { > char t[20]; > char c; > int count, i, j; > Node * head = NULL; > scanf("%d%*c", &count); > for(i = 0; i < count; i++) { > j = 0; > while((c=getchar()) != '\n') { > if(j == 3) t[j++] = '-'; > if(isdigit(c)) { > t[j++] = c; > } else if(isupper(c)) { > if(c == 'S' || c == 'V' || c == 'Y') { > t[j++] = (c - 'A') / 3 + '1'; > } else { > t[j++] = (c - 'A') / 3 + '2'; > } > } > } > t[j] = '\0'; > insert(&head, t, strlen(t)); > } > if(!flag) { > printf("No duplicates.\n"); > } else { > inOrder(head); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator