Реферат: Реализация связанных списков на базе массивов
ReDim Elems(capacity + 1)
ReDim Refs(capacity + 1)
ClearList
End Sub
' Очисткасписка
Sub ClearList()
Refs(NullElem) = NullElem 'конец списка указывает сам на себя
Dim i As Integer
' Поскольку список пуст, то все ячейки массива помечаются
' как "свободноеместо".
For i = NullFreeSpace To UBound(Refs) - 1
Refs(i) = i + 1
Next i
Refs(UBound(Refs)) = NullFreeSpace ' Закольцовываем "свободноеместо".
AFTER = 0
BEFORE = 0
Count = 0
End Sub
' Присваиваниевиртуальномуиндексу virtualIndex значения realIndex
Private Sub Link(virtualIndex As Integer, realIndex As Integer)
Refs(virtualIndex) = realIndex
End Sub
' Выделение места для новых элементов
Private Function GetSpace() As Integer
Dim i As Integer, OldLength As Integer
If IsListFull Then
OldLength = UBound(Elems)
ReDim Preserve Elems(OldLength * 2) 'динамическоеувеличениедлины
ReDim Preserve Refs(OldLength * 2) 'списка, еслионужеполностьюзаполнен