Class PakkausTaulu

java.lang.Object
  extended by PakkausTaulu

public class PakkausTaulu
extends java.lang.Object

PakkausTaulu pitää kirjaa käytettävissä olevista koodeista ja niiden merkityksistä. PakkausTaulun avulla tavujonoja muutetaan koodeiksi.


Field Summary
private  int[] edellinenKoodi
           
private  int hakuja
           
private  int hashSiirto
           
private  int jatkohakuja
           
private  int[] koodi
           
private  int koodipituus
           
private  int maxKoodi
           
private  int maxKoodipituus
           
private  int seuraavaVapaaKoodi
           
private static int[] tauluKoot
           
private  int taulunKoko
           
private  int[] uusiTavu
           
 
Constructor Summary
PakkausTaulu(int maxKoodipituus)
          Luo ja alustaa uuden hajautustaulun, käyttäen annettua maksimikoodipituutta.
 
Method Summary
 void alusta()
          Tyhjentää hajautustaulun ja alustaa koodipituuden, jolloin pakkaus "alkaa alusta".
 int annaKoodipituus()
          Kertoo seuraavan palautettavan koodin (suurimman mahdollisen) pituuden.
 int haeKoodi(int edellinen, int uusiTavu)
          Palauttaa parametreina annettavia edellistä koodia sekä siihen lisättävää tavua vastaavan uuden koodi.
 double hakujaKeskimaarin()
          Kertoo, montako hakua hajautustaulusta keskimäärin piti tehdä yhtä koodikyselyä kohden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tauluKoot

private static final int[] tauluKoot

maxKoodipituus

private final int maxKoodipituus

maxKoodi

private final int maxKoodi

hashSiirto

private final int hashSiirto

taulunKoko

private final int taulunKoko

koodipituus

private int koodipituus

seuraavaVapaaKoodi

private int seuraavaVapaaKoodi

hakuja

private int hakuja

jatkohakuja

private int jatkohakuja

koodi

private int[] koodi

edellinenKoodi

private int[] edellinenKoodi

uusiTavu

private int[] uusiTavu
Constructor Detail

PakkausTaulu

public PakkausTaulu(int maxKoodipituus)
Luo ja alustaa uuden hajautustaulun, käyttäen annettua maksimikoodipituutta.

Parameters:
maxKoodipituus - Kuinka pitkiä koodeja tauluun täytyy saada voida lisätä.
Method Detail

alusta

public void alusta()
Tyhjentää hajautustaulun ja alustaa koodipituuden, jolloin pakkaus "alkaa alusta".


haeKoodi

public int haeKoodi(int edellinen,
                    int uusiTavu)
Palauttaa parametreina annettavia edellistä koodia sekä siihen lisättävää tavua vastaavan uuden koodi. Jos koodia ei ole vielä olemassa, lisää sen tauluun ja palauttaa -1.

Parameters:
edellinen - Edellinen haettu koodi.
uusiTavu - Edellistä koodia vastaavaan dataan lisättävä uusi tavu.
Returns:
Syötettä vastaavan koodiin, tai -1 jos koodia ei ole.

annaKoodipituus

public int annaKoodipituus()
Kertoo seuraavan palautettavan koodin (suurimman mahdollisen) pituuden.

Returns:
Koodipituuden bitteinä.

hakujaKeskimaarin

public double hakujaKeskimaarin()
Kertoo, montako hakua hajautustaulusta keskimäärin piti tehdä yhtä koodikyselyä kohden.

Returns:
Keskimääräisen hakujen määrän.