Trabalho em C - AFN - Autômatos Finitos Não-determinísticos

Então galera, comecei a aprender C a um tempinho atras, ja vi um pouco de tudo. Agora peguei uma lista de exercicios pra fazer, só que me deparei com esse aqui > Define uma máquina abstrata (AFN), e implemente, para buscar strings num arquivo texto.

Vamos la, pensei de varias maneiras pra fazer isso, mas a que me parece mais razoavel é usando um ponteiro que vai conferindo a palavra que coloquei, por exemplo:

esse seria meu alfabeto :
([‘t’, ‘a’, ‘u’, ‘r’, ‘n’])

Dai por exemplo eu escrevo “machado”, ele verifica se machado é uma palavra falida no meu alfabeto.

Dai escreve taturana, dai passa: assim funciona um AFN.

{‘q1’ : { ‘t’ : ‘q2’},
‘q2’ : { ‘a’ : ‘q3’},
‘q3’ : { ‘t’ : ‘q4’},
‘q4’ : { ‘u’ : ‘q5’},
‘q5’ : { ‘r’ : ‘q6’},
q6’ : { ‘a’: ‘q7’},
‘q7’ : { ‘n’: ‘q8’},
‘q8’ : { ‘a’: ‘q9’},
‘q9’ : { },
}

Só que eu não to sabendo por onde eu começo, se alguem puder me dar uma luz eu agradeceria.
valeu ae galera.

Se você quer fazer alguma coisa pensar, use prolog

.