簡體   English   中英

是否有名稱刪除雙向鏈表邊緣的一半?

[英]Is there a name for removing half of a doubly linked list edge?

注意:這不是特定於Java / C / C ++,但是鏈表很常見,因此我選擇在這些語言以及雙向鏈表下標記它。 如果那是錯誤的,我可以更改它!

假設您有一個標准的雙鏈表實現:

struct List {
    int Number;
    struct List *blink;
    struct List *flink;
};

並且您具有以下列表:

1 <--> 2 <--> 3 <--> 4 <--> 5

現在,就我而言,我一直在使用flink作為各種終止符,並在單個方向上取消鏈接節點:

1 <--> 2 <--> 3 <--| 4 <--> 5

因此3的flinknull ,但4的blink指向3。

(有一點無關,我一直在這樣做,以便快速修改和恢復鏈接列表,並具有以下內容:

1 <--> 2 <--| 3 <--> 4 <--> 5
         <--> 6 <--| 7 <--> 8
                <--> 9 <--> 10 <--> 11

建立一個1 2 6 9 10 11的列表)

我的問題確實只是“這種類型的操作名稱是否明確?” 我一直稱其為“剪切”,但是如果有真實姓名,我很高興知道。

雙鏈表是一種雜亂的事情。 它基本上是以不適當的方式刪除節點。

為什么我說這是不正確的,請考慮節​​點2和flinkflink為空,6的blink指向2。

這樣,您就知道2是最后一個節點,2在6的后面。這是矛盾的。

您在哪里需要這種方法?

好吧,除非您還保存指向節點3、4、5、7和8的指針,否則這將被稱為“內存泄漏”。

也就是說,分配的內存不再具有訪問和釋放的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM