Please see my comment to the question. This is a pretty good explanation of this matter:
http://www.wbrogden.com/java/Phonetic/index.html[
^].
See also:
http://en.wikipedia.org/wiki/Metaphone[
^],
http://en.wikipedia.org/wiki/Caverphone[
^],
http://en.wikipedia.org/wiki/Soundex[
^],
http://en.wikipedia.org/wiki/New_York_State_Identification_and_Intelligence_System[
^],
http://en.wikipedia.org/wiki/Match_Rating_Approach[
^].
I don't think the results of the algorithm explained here can give any satisfactory results, because a "phonetically" mangled (misspelled) words ofter start to look more close to some similar words with different meaning. We human often make correct guesses because we are extremely sensitive to the context and even can recognize some features of the personality of the writer. And taking account of the context is actually the matter of another, more general majorly unsolved problem, semantic interpretation for speech recognition:
http://en.wikipedia.org/wiki/Semantic_Interpretation_for_Speech_Recognition[
^].
As the primitive algorithm described in the article referenced first, I see very little value in it. To me, it's more of a commercial hype than something really effective. Note that the suggestions for the corrections of some misspelled words is a permanent source of jokes coming from the users. :-)
As to the statement that "the data structure would be the same", please ask the people who maintained that. I have no idea why they told so and suspect that structure would be the same only in case of extremely silly structure.
—SA