Zeigerverdopplung

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Zeigerverdopplung
Hi,

ich hätte zwei Fragen zur Zeigerverdopplung.

  1. Wann “sterben” Zeiger? Wenn sie auf einen Rang stoßen, der ungleich Null ist?

  2. Warum ist die Zeigerverdopplung ein statischer Algorithmus?


Hi,

  1. Nein. Zeiger sterben, wenn sie nach der Verdopplung auf kein Element mehr zeigen, aka. wenn der neue Nachfolger zum ersten Mal -1 ist. Dann kann der Rang des jeweiligen Elements berechnet werden, indem zu dem Rang des alten Nachfolgers das d dazuaddiert wird.

  2. Weil man schon von Vornherein sagen kann, wie die zu bearbeitenden neuen Listen pro Thread aussehen werden und weil sich das während der Laufzeit nicht ändert. Der Algorithmus teilt die Arbeit immer gleich (nämlich durch Zeigerverdopplung aus einer Liste zwei unabhängige Listen basteln), ganz egal, wie die Eingabe aussieht.