【发布时间】:2021-06-13 17:56:08
【问题描述】:
我刚开始研究数据结构,需要了解双向链表,它是由3个数组实现的——Data, Next, Prev。
我想实现delete函数,它接收一个值,并从数组中删除它。
我有一个指向列表头部的指针 L 和一个指向 Data 数组中第一个空闲元素的指针 FREE。
我想实现它,我知道我需要更新所有 3 个数组。
这是我在 psu 中删除第一个元素的尝试:
Delete(value)
if L == -1 : return -1
if D[L] == value:
temp = N[L]
N[L] = FREE
FREE = L
L = temp
上面的代码没有更新 P (Prev) 数组。
我不确定我应该如何更新 P,但这是我认为我应该做的:
Delete(value)
if L == -1 : return -1
if D[L] == value:
P[FREE] = L
temp = N[L]
N[L] = FREE
FREE = L
L = temp
P[L] = P[FREE]
对吗?
【问题讨论】:
标签: arrays arraylist data-structures linked-list doubly-linked-list