Różnice
Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:asd:cwiczenia:2012-hashing [2012/05/11 16:22] ikaf zad1 |
pl:dydaktyka:asd:cwiczenia:2012-hashing [2019/06/27 15:50] (aktualna) |
</WRAP> | </WRAP> |
| |
**Zadanie 1** \\ | ==== Zadanie 1 ==== |
* W pobranej paczce jest program ''finduniversumsize.cpp'' który służy do wyznaczania wartości //m// na podstawie ilości przechowywanych danych i zakładanej średniej długości listy. | * W pobranej paczce jest program ''finduniversumsize.cpp'' który służy do wyznaczania wartości //m// na podstawie ilości przechowywanych danych i zakładanej średniej długości listy. |
* Jest też moduł ''hchain'' który jest klasą realizującą tablicę haszującą z łańcuchową metodą rozwiązywania konfliktów. | * Jest też moduł ''hchain'' który jest klasą realizującą tablicę haszującą z łańcuchową metodą rozwiązywania konfliktów. |
* 8-) Proszę "zepsuć" dane dla pierwszej i drugiej funkcji jednocześnie. Jak teraz poprawić rozłożenie danych w tablicy haszującej? | * 8-) Proszę "zepsuć" dane dla pierwszej i drugiej funkcji jednocześnie. Jak teraz poprawić rozłożenie danych w tablicy haszującej? |
| |
| ==== Zadanie 2 ==== |
| 8-) W paczce znajdują się pliki ''hopen.cpp'' i ''hopen.h'' które zawierają definicję klasy realizującej tablicę haszującą w której konflikty są rozwiązywane metodą adresowania otwartego. |
| W tej klasie brakuje obsługi wartości usuniętych. Zadanie polega na uzupełnieniu podanej klasy o obsługę tych wartości. |
| \\ Rozwiązanie jest krótkie: należy: |
| - W pliku nagłówkowym dopisać definicję nowej wartości np.<code c++>#define STS_DLTD 2</code> |
| - W pliku ''cpp'' uzupełnić: |
| - Metodę ''insert'' |
| - Metodę ''remove'' |
| - Ewentualnie w metodzie wypisującej wartości ''printValues'' dopisać jeden warunek:<code c++>else if(_ststab[i] == STS_DLTD) |
| cout << "DLTD, ";</code> |
| |
| |
| |