Uppgift 4 våren 2012Uppgiften ska lämnas till din övningsledare på övningen den 10/2. För godkänt måste du ha gjort samtliga deluppgifter. Det är tillåtet att göra enstaka fel och misstag men det är viktigt att du försöker lösa samtliga uppgifter. Om du kör fast med någon uppgift så finns det som vanligt hjälp att få på labbarna. HashtabellHashtabeller finns inbyggda i Java i form
av klasserna Börja med att läsa den här texten om hashtabeller. ImplementationsuppgiftDu ska implementera följande gränssnitt, StringDictionary.java, med hjälp av en hashtabell.
Hashtabellens storlek (antalet listor) ska anges när
man skapar en ny tabell. Använd gärna
metoden Alternativ 1
Den här uppgiften bjuder på oväntade problem eftersom vektorer
och generiska typer fungerar dåligt tillsammans i Java. Det finns
två (någorlunda bra) lösningar på problemet. Antingen undviker
man vektorer och använder en
Alternativ 2
Om man hellre vill använda vektorer, till exempel av
effektivitetsskäl, så dyker det upp oväntade problem.
Man kan nämligen inte skapa en vektor av stränglistor
i Java på ett typsäkert sätt. Följande, till synes
naturliga, kod Alternativ 3Man kan också strunta i att använda generiska typer och färdig listkod och istället göra en enkel och minneseffektiv implementation från grunden. Det kanske är det bästa alternativet. Följande kodskiss kan då vara en bra utgångspunkt.
Skriftlig uppgiftBeräkna tidskomplexiteten i medelfall för sökning, insättning och borttagning i en
Låt n vara antalet element i datastrukturen och presentera lösningen i en tabell med tre rader och fem kolumner. Som vanligt ska du också motivera dina svar. |