When I first read 'DFA' and 'NFA', I feel they are very complex. but when I read the concept of them, I found they are very very simple. Not complex at all.
DFA is acronym of deterministic finite automata. You had better know what is finite automata before trying to know DFA and NFA. An automate is a mathmatical model for finite state machine. I think everyone know finite state machine well.It is just a serial of states and the trigger condition. Finite automate is this kind of state machine which will stop after a certain steps. How doest the state machine transfer state is regulating by its onwer internal principle and the input.
An automata is represented by the 5-tuple (set of states, finite set of symbols,transition function, start state, accepted state). You can find the detailed definition at (http://en.wikipedia.org/wiki/Automate_theory).
The difference between DFA and NFA :
1. Deterministic finite automate :
Each state of an automaton of this kind has a transition for every symbol in the alphabet.
2. Nondeterministic finite automate :
States of an automaton of this kind may or may not have a transition for each symbol for each symbol in the alphabetet, or can even have multiple for a symbol. If a transition is undefined, so that the automaton doesn't know how to keep on reading the input, the word is rejected.