Duden/HashTabelle Kombinationen

Eintrag

Representiert einen Eintrag in einer HashTabelle.
  • dem öffentlichen Text Schlüssel mit Standardwert "
  • der öffentlichen Variable Wert mit Standardwert dem Standardwert von einer Variable

Aliase

  1. ein Eintrag für <Schlüssel> mit Wert <Wert>
  2. einem Eintrag für <Schlüssel> mit Wert <Wert>
  3. einen Eintrag für <Schlüssel> mit Wert <Wert>

HashTabelle

    Aliase

    1. eine leere HashTabelle
    2. eine neue HashTabelle

    Duden/HashTabelle Funktionen

    FNV_Hash

    Gibt den FNV Hash für den Text t zurück.
    • Parameter: t
    • Parameter Typ: Text
    • Rückgabe Typ: Zahl

    Aliase

    1. der Hash von <t>
    2. dem Hash von <t>
    3. den Hash von <t>

    Implementation

    Implementiert in libddpstdlib.a

    LeererEintrag

    • Rückgabe Typ: Eintrag

    Aliase

    1. ein leerer Eintrag
    2. einem leerer Eintrag

    Implementation

        Der Eintrag e ist der Standardwert von einem Eintrag.
        Speichere 0 in art von e.
        Gib e zurück.

    Tabelle_Zu_Text

    • Parameter: tabelle
    • Parameter Typ: HashTabelle
    • Rückgabe Typ: Text

    Aliase

      Keine Aliase definiert

    Implementation

        Der TextBauer b ist ein neuer TextBauer.
    
        Für jede Zahl i von 1 bis die Länge von einträge von tabelle, mache:
            [
            Wenn (einträge von tabelle an der Stelle i) ein leerer Eintrag ist, dann: 
                Füge "leer, " an b an.
                Fahre mit der Schleife fort.
            Wenn (einträge von tabelle an der Stelle i) ein Grabstein ist, dann: 
                Füge "Grabstein, " an b an.
                Fahre mit der Schleife fort.
            ]
            Wenn (einträge von tabelle an der Stelle i) leer oder ein Grabstein ist, dann: 
                Fahre mit der Schleife fort.
    
            Füge (Schlüssel von (einträge von tabelle an der Stelle i)) an b an.
             Füge ": " an b an.
            Die Variable v ist Wert von (einträge von tabelle an der Stelle i).
    
            Wenn v eine Zahl ist, füge (v als Zahl als Text) an b an.
            Wenn aber v ein Text ist, füge (v als Text) an b an.
            Wenn aber v eine Kommazahl ist, füge (v als Kommazahl als Text) an b an.
            Wenn aber v ein Wahrheitswert ist, füge (v als Wahrheitswert als Text) an b an.
            Wenn aber v ein Buchstabe ist, füge (v als Buchstabe) an b an.
            Sonst füge "<Unbekannt>" an b an.
    
            Wenn i ungleich die Länge von einträge von tabelle ist, füge ", " an b an.
    
        Gib b als Text zurück.

    Tabellen_Wert_Setzen

    • Parameter: tabelle, schlüssel, wert
    • Parameter Typ: HashTabelle, Text, Variable
    • Rückgabe Typ: Wahrheitswert

    Aliase

    1. Setze den Wert von <schlüssel> in <tabelle> auf <wert>
    2. setze den Wert von <schlüssel> in <tabelle> auf <wert>
    3. das Speichern von <schlüssel> mit Wert <wert> in <tabelle> einen neuen Schlüssel hinzugefügt hat

    Implementation

        Wenn länge von tabelle plus 1 größer als die Kapazität von tabelle mal MAXIMALER_LADUNGS_FAKTOR ist oder die Kapazität von tabelle gleich 0 ist, dann:
            Die Zahl neue_kapazität ist (die Kapazität von tabelle mal 2), falls die Kapazität von tabelle ungleich 0 ist, ansonsten 16.
            Passe die Kapazität von tabelle auf neue_kapazität an.
    
        Die Zahl eintrag_index ist der Index für schlüssel in tabelle.
        Der Wahrheitswert ist_neuer_schlüssel ist wahr, wenn eintrag_index für einen neuen Schlüssel in tabelle steht.
    
        Wenn ist_neuer_schlüssel, dann: 
            Erhöhe länge von tabelle um 1.
        Speichere einen Eintrag für schlüssel mit Wert wert in einträge von tabelle an der Stelle eintrag_index.
    
        Gib ist_neuer_schlüssel zurück.

    Tabellen_Wert_Lesen

    • Parameter: tabelle, schlüssel
    • Parameter Typ: HashTabelle, Text
    • Rückgabe Typ: Variable

    Aliase

      Keine Aliase definiert

    Implementation

        Die Zahl eintrag_index ist der Index für schlüssel in tabelle.
        Wenn (einträge von tabelle an der Stelle eintrag_index) leer oder ein Grabstein ist, dann:
            Gib der Standardwert von einer Variable zurück.
        Gib Wert von (einträge von tabelle an der Stelle eintrag_index) zurück.

    Tabelle_Hat_Schlüssel

    • Parameter: tabelle, schlüssel
    • Parameter Typ: HashTabelle, Text
    • Rückgabe Typ: Wahrheitswert

    Aliase

    1. <schlüssel> nicht in <tabelle> enthalten ist
    2. <schlüssel> in <tabelle> enthalten ist
    3. <tabelle> <schlüssel> nicht enthält
    4. <tabelle> <schlüssel> enthält

    Implementation

        Die Zahl eintrag_index ist der Index für schlüssel in tabelle.
        Gib falsch, wenn (einträge von tabelle an der Stelle eintrag_index) leer oder ein Grabstein ist, zurück.

    Tabellen_Wert_Löschen

    • Parameter: tabelle, schlüssel
    • Parameter Typ: HashTabelle, Text
    • Rückgabe Typ: Variable

    Aliase

    1. Lösche den Wert für <schlüssel> aus <tabelle>
    2. der gelöschte Wert für <schlüssel> in <tabelle>
    3. den gelöschten Wert für <schlüssel> in <tabelle>

    Implementation

        Die Zahl eintrag_index ist der Index für schlüssel in tabelle.
    
        Wenn (einträge von tabelle an der Stelle eintrag_index) leer oder ein Grabstein ist, dann:
            Gib der Standardwert von einer Variable zurück.
    
        Die Variable wert ist Wert von (einträge von tabelle an der Stelle eintrag_index).
        Speichere einen Grabstein in (einträge von tabelle an der Stelle eintrag_index).
        Gib wert zurück.

    Tabellen_Einträge

    • Parameter: tabelle
    • Parameter Typ: HashTabelle
    • Rückgabe Typ: Eintrag Liste

    Aliase

    1. die Einträge von <tabelle>
    2. alle Einträge von <tabelle>

    Implementation

        Wenn länge von tabelle gleich 0 ist, gib eine leere Eintrag Liste zurück.
    
        Die Eintrag Liste einträge ist die Kapazität von tabelle Mal ein leerer Eintrag.
        Die Zahl j ist 1.
        Für jede Zahl i von 1 bis die Länge von einträge von tabelle, mache:
            Wenn (einträge von tabelle an der Stelle i) nicht leer oder ein Grabstein ist, dann:
                Speichere (einträge von tabelle an der Stelle i) in (einträge an der Stelle j).
                Erhöhe j um 1.
        Gib einträge bis zum (j minus 1). Element zurück.