Ich habe einige Anpassungen an der ursprünglichen Version meiner Liste vorgenommen, jetzt erfüllt sie die im Material von Professor Maziero festgelegten Anforderungen. Ich habe es angepasst, um die Tests zu bestehen, und habe mich auch für die Verwendung von readapt für C entschieden. Die Kompilierung zusammen mit der verfügbaren Testdatei schien auf diese Weise weniger problematisch zu sein.
Als ich den Code für diese Liste noch einmal durchging, musste ich einfachere Listen überdenken, die vor der doppelverketteten kreisförmigen Liste standen, damit ich beim Codieren solide Argumente zusammenstellen konnte.
Es handelt sich um eine Struktur, in der jeder Knoten drei Teile enthält: Wert, Zeiger auf den nächsten Knoten und Zeiger auf den vorherigen Knoten.
Ermöglicht die bidirektionale Navigation. Um einen Knoten zu entfernen oder hinzuzufügen, müssen lediglich die Punkte des vorherigen und nächsten Knotens angepasst werden.
[head] <-> [nó1] <-> [nó2] <-> [tail]
Es kann einfach verkettet (einseitige Richtung) oder doppelt verkettet werden (das verwende ich für das Projekt).
Der letzte Knoten in der Liste ist mit dem ersten verbunden, was bedeutet, dass die Liste keinen natürlichen Endpunkt hat.
Die Liste kann unbegrenzt durchgeblättert werden, denn wenn sie das Ende erreicht, kehrt sie zum Anfang zurück.
Durch die Verwendung einer zirkulären doppelt verknüpften Liste verfügt das Betriebssystem über eine zirkuläre Skalierungsfunktion.
Das heißt, nachdem der letzte Prozess ausgeführt wurde, kehrt das System zum ersten zurück und setzt die Ausführung fort.
Stellen Sie sich vor, dass ein Betriebssystem drei Prozesse hat:
[P1] <-> [P2] <-> [P3] <-> [P1] ...
Nachdem P3 seine Ausführungszeit beendet hat, kehrt die Liste direkt zu P1 zurück, um eine kontinuierliche Ausführung sicherzustellen.
Den aktuellen Betriebssystemcode finden Sie hier.
Das obige ist der detaillierte Inhalt vonDia – Neuimplementierung einer doppelt verknüpften kreisförmigen Liste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!