gpt4 book ai didi

java - 是否有删除双向链表边的一半的名称?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:37 24 4
gpt4 key购买 nike

注意:这不是特定于 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 和 6,2 的 flink 为 null 而 6 的 blink 指向 2。

通过这个你告诉 2 是最后一个节点,2 在 6 的后面。这是矛盾的。

哪里需要这种方法?

关于java - 是否有删除双向链表边的一半的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com