Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Laboration 5 del 2" mellan 2015-09-28 22:56 av Linda Kann och 2015-09-28 23:03 av Linda Kann.

Visa < föregående | nästa > ändring.

Laboration 5 del 2

Läsning Läs i kapitel 4 i kursboken om Hashing.

1. Hashning med Pythons inbyggda dictionary Minns du hur du i labb 2 gjorde en enklel kö med Pythons lista? Nu ska du göra en egen hashtabell med Pythons dictionary!

Skriv en klass DictHash som använder dictionary. Den ska ha metoderna


* store(nyckel, data)
* x = search(nyckel)
Prova din dictionary med datafilen från förra labben. Tar det lika lång tid att köra?

Vill du kunna skriva d[nyckel] istället för d.search[nyckel]? Definiera då metoden __getitem__()

2. En egen implementation av hashtabellen Nu ska du även göra hashningen själv, i din nya klass Hashtabell. Krav:


* Noderna måste innehålla både nyckel och värde
* Hashtabellen ska vara lagom stor
* Du måste skriva en egen hashfunktion, som ger en bra fördelning över tabellen
* Någon krockhantering måste ingå, t ex krocklistor eller probning
* Du ska använda KeyError för att tala om att en nyckel inte finns
Testkörning 1 Prova med datafilen från förra labben.

Testkörning 2 Programmet hashtest.py innehåller data o\ m alla atomer (namn och atomvikt). Lista ut vad det gör och hur det anropar hashtabellen. Modifiera det sedan för att kontrollera om di\ n hashtabell fungerar.

Redovisning Labben lämnas in på kurswebbsidan (se Inlämningsuppgifter i vänstermenyn) och redovisas muntligt av bägge gru\ ppmedlemmarna.

Vid redovisningen ska du kunna


* motivera ditt val av hashfunktion, krockhantering och tabellstorlek,
* skissa hashtabellen,
* förklara varför hashning ger snabb sökning
Betyg Denna labb kan endast ge betyg E. Du måste lämna in den och redovisa den i tid för att få göra labbarna för högre betyg i period 2.