PDA

View Full Version : [Frage] Verkettung der Überläufer - Pseudocode


Merlin
18-05-2004, 15:25
Beim Einfügen in die Liste (Vekett. d Überläufer)

gebe ich laut Skriptum p als Parameter mit.

Was ist das p genau?

Ich ermittle den Schlüssel nämlich nicht mittels hash(p) sondern hash(p.key).

Warum ist dies so?
Ich geb ja wohl keinen Pointer in die Funktion mit , oder?

Georg Kraml
18-05-2004, 15:30
Was ist das p genau?

Ein Zeiger oder eine Referenz auf den einzufügenden Datensatz.


Ich ermittle den Schlüssel nämlich nicht mittels hash(p) sondern hash(p.key).

Ja; p.key ist diejenige Komponente des Datensatzes, die den Schlüssel enthält. In der Praxis besteht der Datensatz nämlich normalerweise nicht nur aus dem Schlüssel selbst, sondern ist eine Struktur, die neben dem Schüssel auch "Nutzlast" enthält.


Ich geb ja wohl keinen Pointer in die Funktion mit , oder?

Wieso nicht?

.

Merlin
18-05-2004, 15:36
achso, doch.
Dann kann ich aber ruhigen gewissens auch in die Suchfunktion und Entfern-funktion einen Pointer p mitgeben?

Weil im Skriptum ist dies nur mit der Such-Funktion so angeschrieben, bei den anderen 2 Funktionen wird das k mitgeliefert und dann innerhalb der Funkt. der Pointer ermittelt

Georg Kraml
18-05-2004, 15:39
Dann kann ich aber ruhigen gewissens auch in die Suchfunktion und Entfern-funktion einen Pointer p mitgeben?

Jein.

Den Such- und Entfernfunktionen übergibst du naturgemäß nur einen Schlüssel und nicht einen kompletten Datensatz - im einen Fall willst du den Datensatz ja überhaupt erst finden, im anderen Fall interessiert er dich gar nicht mehr.

Natürlich darfst du statt dem Schlüssel auch einen Zeiger auf einen Schlüssel übergeben, oder zum Beispiel statt mit Rückgabewerten mit Zeigern als Ausgabeparameter arbeiten, aber das sind Spitzfindigkeiten. Wesentlich ist, das ein Zeiger auf einen Datensatz hier kein sinnvoller Eingabeparameter ist.

.

Merlin
18-05-2004, 15:42
danke vielmals

Deine Antworten haben mir schon viel geholfen ;)