Svetlana, ovo je tipičan "zadatak" u školama ...
Moram pre svega da ukažem na jednu malenu grešku - strcmp() je standardna funkcija za poređenje stringova, a ne funkcija za dodavanje u stablo...
Što se tiče rešavanja tvog problema... stvar je više vezana za drugu diskusionu grupu koja se zove teorija programiranja (po meni) nego za C++. Zašto? - AVL stabla, balansirana stabla, hash tabele su nešto što predstavlja bazne stvari kad je programiranje u pitanju i mislim da bi bilo okej da se ovo prebaci na teorija programiranja. :)
Što se tiče realizacije tvog programa - tvoj problem je rešen u knjizi koja se zove "Mastering Algorithms in C", jedna od najboljih knjiga koje imam u svojoj kućnoj biblioteci a koja se bavi dinamičkim strukturama podataka, algoritmima i numeričkim metodama (moja omiljena grana matematike, zajedno sa diskretnom matematikom). Predlažem ti da KUPIŠ tu knjigu i da je pročitaš nekoliko puta dok sve iz nje ne naučiš, kad sve to naučiš slobodno možeš sebe da zoveš programerom. Ozbiljan sam.
Da se vratimo na temu - tvoj problem je autor Kyle Laudon obradio u poglavlju 12
Sorting and Searching sekcija
Binary Search Example: Spell Checking.
U pomenutoj knjizi su takođe obrađena i AVL (Adel'son-Vel'skii and Landis) stabla, kao i hash tabele.
P.S. naravno nije CEO tvoj problem rešen! - Rešene su bazne stvari, tako da u toj knjizi imaš dobru podlogu na kojoj možeš rešiti svoj problem.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin