[英]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的flink
為null
,但4的blink
指向3。
(有一點無關,我一直在這樣做,以便快速修改和恢復鏈接列表,並具有以下內容:
1 <--> 2 <--| 3 <--> 4 <--> 5
<--> 6 <--| 7 <--> 8
<--> 9 <--> 10 <--> 11
建立一個1 2 6 9 10 11
的列表)
我的問題確實只是“這種類型的操作名稱是否明確?” 我一直稱其為“剪切”,但是如果有真實姓名,我很高興知道。
雙鏈表是一種雜亂的事情。 它基本上是以不適當的方式刪除節點。
為什么我說這是不正確的,請考慮節點2和flink
的flink
為空,6的blink
指向2。
這樣,您就知道2是最后一個節點,2在6的后面。這是矛盾的。
您在哪里需要這種方法?
好吧,除非您還保存指向節點3、4、5、7和8的指針,否則這將被稱為“內存泄漏”。
也就是說,分配的內存不再具有訪問和釋放的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.