我對最初版本的清單做了一些調整,現在它滿足了 Maziero 教授資料中規定的要求。我對其進行了調整以通過測試,我還決定使用 readapt for C。這樣,與可用的測試文件一起編譯似乎問題就不那麼大了。
重新審視這個列表的程式碼,我需要重新審視雙鏈循環列表之前的更簡單的列表,這樣我就能夠在編碼時將可靠的推理放在一起。
它是一個結構體,其中每個節點包含三個部分:值、指向下一個節點的指標和指向前一個節點的指標。
允許雙向導航,刪除或新增節點只需調整上一個和下一個節點的點。
[head] <-> [nó1] <-> [nó2] <-> [tail]
它可以是簡單的鍊式(單側方向)或雙鍊式(這是我在專案中使用的)。
清單中的最後一個節點與第一個節點相連,這意味著清單沒有自然的結束點。
列表可以無限滾動,因為當到達末尾時,它會返回到開頭。
使用循環雙向鍊錶使得作業系統具有循環縮放功能。
也就是說,最後一個行程執行完後,系統會回到第一個行程繼續執行。
想像一個作業系統有三個行程:
[P1] <-> [P2] <-> [P3] <-> [P1] ...
P3執行完時間後,清單會直接回到P1,確保持續執行。
目前作業系統程式碼可以在這裡找到。
以上是Dia - 重新實現雙向連結循環列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!