1

Robert Sedwick 的算法,有人提到链表可以使用数组来表示,在下面的链接

http://flylib.com/books/en/3.55.1.34/1/

图 3.8,如果从我的理解中删除了 5,则在删除 val 5 时,下一个 4 应该更改为索引 6,因为我们将在第 4 项的数字被删除,下一个 val 3 被更改。我没有遵循该图的逻辑。任何人都可以帮助我。

谢谢!

4

1 回答 1

1

索引是从零开始的,而不是值本身(字母会是更好的值)。
移除值示例:移除5前,下一个有值节点的索​​引4为4,指向值5;删除后,下一个索引变为 5,指向值6(下一个从 4 变为 5)。

或者,使用前缀v来表示值:

    index ...  3  4  5 ...
    ----------------------
    value     v4 v5 v6
    next       4  5  6

    index ...  3  4  5 ...
    ----------------------
    value     v4 v5 v6
    next       5  5  6  

如您所见,该节点v4之后是v6(索引 5)实际上v5从链中删除。

于 2010-11-28T10:19:44.450 回答