5.7. Uniwersalna struktura słownikowa 157
zostaną stworzone. Jedynie na poziomie litery ‘F’ zostanie utworzona komórka, w której do t[n-l] zostanie wpisany wskaźnik „do siebie”. Przypomnijmy, że to ostatnie służy jako znacznik końca słowa.
void zapis2(char *slowo, USS_PTR p)
(
USS_PTR q; // zmienna pomocnicza int pos;
for(int i =1;i<=strlen(słowo);i++)
(
pos=do_indeksu(slowo[i-': ] ) ; if (p—>t[pos] !- NULL) p=p->t[posl;
also
{
q=new USS; p->t[pos)=q;
for (int k=0; k<n; q->t[k++]=NULL); p-q;
(
p->t[n-l]=p; //pętla iako koniec słowa
}
Funkcja pisz słownik służy do wypisania zawartości słownika - być może nie w najczytelniejszej fonnie, ale można się dość łatwo zorientować, jakie słow'a zostały zapamiętane w USS.
void pisz_slownik(USS_PTR p)
(
for(int i=0;i<26;i++J if (p->L[i] != KULL)
(
if((p->t[i])->t[n-1]==p->L[i])// koniec słowa => CR cout « z_indeksu(i) « endl <<"
else
cout « z_indeksu(i);
cout << "---// to dla ładnego wyglądu...
pisz_slownik(p->t[i]); //wypisz rekurencyjnie resztę )
)
Funkcja szukaj realizuje dość oczywisty algorytm szukania pewnego słowa w' drzewie: jeśli przejdziemy wszelkie gałęzie (poziomy) odpowiadające literom poszukiwanego słowa i trafimy na znacznik końca tekstu, to wynik jest chyba oczywisty!
void szukaj(char *slowo, USS_PTR p)
I
// szukaj słowa w słowniku int test=l; int i=0;
while ((lest==l) SS isstrlen(słowo))