注意:这不是特定于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
是blink
,但4 1 <--> 2 <--| 3 <--> 4 <--> 5
<--> 6 <--| 7 <--> 8
<--> 9 <--> 10 <--> 11
指向3. {/ p>
(轻微无关,我一直在这样做,以便快速修改和恢复链接列表,并有类似的事情:
1 2 6 9 10 11
建立{{1}})
列表我的问题实际上只是&#34;这种类型的操作是否具有明确的名称?&#34;我一直在说它&#34;剪切&#34;,但是如果有一个真正的名字很高兴知道。
答案 0 :(得分:0)
双链表是一种混乱的东西。它基本上是以不正确的方式删除节点。
为什么我说它不合适,考虑节点2&amp; 6,2&#39; s flink
为空,6&#39; blink
指向2.
通过这个你告诉2是最后一个节点而2是在6的后面。这是矛盾的。
你在哪里需要这种方法?
答案 1 :(得分:0)
好吧,除非您还保存指向节点3,4,5,7和8的指针,否则这将被称为&#34;内存泄漏&#34;。
即。分配内存,你不再有办法访问,因此释放。