| ||||||||||
| 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