How would you design spell checker?

Let's see various data structures (e.g. Hashing, Binary Search Tree, Trie, Ternary Search Tree, BK- Tree ) which can be used to design data structure and their features and usage: