标签:style blog color io for ar div size
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 27 typedef struct node { int v; struct node *next[MAX]; }Trie; Trie *root; void creatTrie(char *str) { int i, id, j; Trie *p = root, *q; int len = strlen(str); for( i=0; i<len; i++) { id = str[i] - ‘a‘; if(p->next[id] == NULL){ q = (Trie *)malloc(sizeof(Trie)); q->v = 0; for( j=0; j<MAX; j++) q->next[j] = NULL; p->next[id] = q; } p = p->next[id]; p->v++; } } void findTrie(char *str) { int i, id; int len = strlen(str); Trie *p = root; for( i=0; i<len; i++) { id = str[i] - ‘a‘; p = p->next[id]; if(p == NULL) return ; if(p->v > 1) printf("%c",str[i]); if(p->v == 1){ printf("%c",str[i]); return ; } } } void delTrie(Trie *T) { int i; if(T == NULL) return ; for( i=0; i<MAX; i++) if(T->next[i] != NULL) delTrie(T->next[i]); free(T); } int main(void) { char str[1003][23]; int n = 0, i; root = (Trie *)malloc(sizeof(Trie)); root->v = 0; for( i=0; i<MAX; i++) root->next[i] = NULL; while(scanf("%s",str[n])!=EOF){ creatTrie(str[n++]); } for( i=0; i<n; i++) { printf("%s ",str[i]); findTrie(str[i]); printf("\n"); } delTrie(root); return 0; }
标签:style blog color io for ar div size
原文地址:http://www.cnblogs.com/Yan-C/p/3880836.html