http://pascal.lo2.opole.pl/drzewo_licznikowe.html
http://www.astagor.net/putinf/data/algo ... -Heap.html
o ile w tym wynalazku mozna tworzyc zmienne dynamiczne, jesli nie mozna, to pozostaje tablica o odpowiedniej strukturze:
[element][liczba][polozenie_nastepnika][element][liczba][polozenie_nastepnika] ... [element][liczba][polozenie_nastepnika]
numerujesz komorki tablicy od 0, wiec element1 jest w 0, liczba w 1, polozenie_nastepnika w 2, powiedzmy ze nastepnik bedzie w 6, wiec w 6 masz element, w 7 jego liczbe, w 8 kolejny nastepnik
drzewo robisz tak, aby posrodku byl wyraz na M lub jakis wyraz na litere ze srodka alfabetu (dzieki temu drzewo bedzie zrownowazone), dostajesz nowy wyraz, porownujesz go z pierwszym elementem drzewa i albo na lewo jesli < albo na prawo jesli >. Robisz tak, az dojedziesz do konca i nie znajdziesz niczego, albo gdy znajdziesz juz ten sam wyraz. Jesli nic nie ma, to wstawiasz wyraz w tym miejscu gdzie znalazles koniec. Jesli jest, to +1 do liczby. Po skonstruowaniu drzewa zabierasz sie za szukanie, tak samo jak dodawanie, ale bez ostatniej operacji doklejania/dodawania. Nie ma ? to komunikat o tym ze nie ma. Jest ? to komunikat o ilosci. Natomiast liczbe wystapien zapisujesz najpierw jako 0, potem przegladasz drzewo i patrzysz ktora liczba jest wieksza niz obecna, jesli jest wieksza, to ustawiasz slowo oraz liczbe wystapien na wartosci w aktualnie ogladanym elemencie drzewa. Po dojechaniu do konca masz najczestsze slowo oraz liczbe jego wystapien w tekscie.