#include #include #include typedef struct TreeNode{ char c; struct TreeNode *naslednici[26]; }stablo; void InsertWord(stablo **koren, char *rec) { if(rec[0] == '\0') return; if(*koren == NULL) { *koren = (stablo*)malloc(sizeof(stablo)); (*koren)->c = rec[0]; } InsertWord(&((*koren)->naslednici[rec[0]-'a']),rec+1); } void Insert(stablo **koren, char *rec) { InsertWord(&((*koren)->naslednici[rec[0]-'a']),rec); } int TestWord( stablo *koren, char *rec ) { //printf("%c ",rec[0]); if(rec[0] == '\0') return 1; if(koren->naslednici[rec[0] - 'a'] != NULL) return TestWord(koren->naslednici[rec[0]-'a'],rec+1); return 0; } int Test(stablo *koren, char *rec) { if ( koren->naslednici[rec[0]-'a'] == NULL ) return 0; return TestWord( koren->naslednici[rec[0]-'a'], rec ); } void Ispis(stablo *koren) { if ( koren == NULL ) return; putchar(koren->c); putchar('\n'); for ( int i = 0; i < 26; i ++ ) Ispis( koren->naslednici[ i ] ); } int main() { stablo *koren = (stablo*)malloc(sizeof(stablo)); Insert(&koren,"medved"); Ispis(koren); printf("%d\n",Test(koren,"med")); printf("%d\n",Test(koren,"drvo")); }