Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

### Hašování s přemísťováním

Seznamy jsou tentokrát ukládány do tabulky a implementovány jako dvousměrné. Potřebujeme tedy dvě položky pro práci s tabulkou: next - číslo řádku obsahující další prvek seznamu a previous - číslo řádku obsahující předchozí prvek seznamu. Když dojde ke kolizi, tj. chceme vložit prvek a jeho místo je obsazené prvkem z jiného řetězce, pak tento prvek z jiného řetězce přemístíme na jiný prázdný řádek v tabulce (proto hašování s přemísťováním).

Algoritmus (Hašování s přemísťováním)

Algoritmus MEMBER funguje stejně jako u hašování se separovanými řetězci, jen místo ukazatele na další prvek použije hodnotu next z tabulky. Při operaci INSERT vložíme prvek kam patří pokud je tam místo, pokud již je místo obsazeno prvkem který tam patří, čili zde začíná seznam kolidujících prvků (previous = prázdné), pak postupujeme po položkách next až na konec seznamu, vložíme prvek na některý volný řádek tabulky a vyplníme správně hodnoty next a previous. Pokud je místo obsazeno prvkem z jiného seznamu (previous prázdné), tak tento prvek přemístíme na některý volný řádek, správně přepíšeme položky next a previous v měněném seznamu a vkládaný prvek uložíme na jeho místo. Operace DELETE je vcelku přímočará, jenom je třeba, pokud mažeme první prvek seznamu na jeho místo přesunout ten druhý v pořadí (pokud existuje).

Subsections

- Očekávaný počet testů