Bäume - Eindeutige Identifizierung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bäume - Eindeutige Identifizierung

    Morgen,

    ich habe mir als Aufgabe gestellt, ein Telefonbuch zu programmieren, welches Speichertechnisch auf Binärbäume basieren soll.

    Nun ist es ja so, dass der Name des Knotens eindeutig sein muss.
    Gleichzeitig will ich die such Funktion so optimieren, dass ich anhand der Values weiß, ob ich den Teilbaum links oder rechts weiter absuchen muss.

    Wenn ich aber nach einem Nachnamen suchen möchte, dieser aber gleichzeitig den Knoten nicht eundeutig identifiziert, wie benenne ich dann die Bäume?


    Hab mir bisher überlegt eine ID in die Struktur mit aufzunehmen. Diese soll eindeutig sein, muss aber den Nachnamen enthalten (da ich ja nach dem Nachnamen suche).
    Diese ID könnte dann z.B. ein String, bestehend aus dem Nachnamen und der Telefonnummer sein.
    ... oder sehe ich da was falsch und es gibt eine viel effizentere Lösung?
  • Was man machen kann, ist ist zu jedem Eintrag einen eindeutigen Hash zu bilden und den als Schlüssel zu verwenden. Idealerweise besteht der Hash aus Zahlen, da diese sich relativ fix vergleichen lassen und ein (Rot-Schwarz-)Baum mit Zahlen recht schnell ist, allerdings wirds schwer dafür eine Hash-Funktion zu finden.

    Andere Möglichkeit wäre den Namen zu nehmen in den Zeichenweise als Index zu nehmen, dann hättest du eine Char als Index, müsstest aber auf Binärbäume verzichten und einen Baum mit 26 Indizes implementieren (geht soähnlich). Dann wäre das Suchen nach Namen ebenfalls performant (lineare Laufzeit!)

    In beiden Fällen wäre eine reverse Suchanfrage (Wer hat xxx als Telefonnummer) furchtbar langsam.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]