Type queue data As Integer '用作数据场 next As Integer
'用作指针场 End Type Const max=10 Dim a(10) As
queue 设a( i
)为数组中的一个元素,该元素的指针指向数组a(10)第i+1个元素,其下标为i ,指针的值为i
。需要指出的是数据结构不同于数据类型,也不同于数据类型声明的对象(变量)。数据结构不仅描述数据类型的数据对象,而且要描述数据对象各元素之间的各种运算。为了弄清自定义数据类型的作用,我们规定变量data存放元素的值(作数据场用),变量next存放紧接本元素后的元素的指针。通过用自定义数据类型queue声明数组a(10)和对变量next作专门规定,可以发现,我们能将一片连续的线性分布的数据存放在内存中非线性的不连续的地址空间里,却不影响我们对其进行线性的运算操作。
像这种利用指针把各个元素链接起来的结构被称为链表,类似例1定义的数组均可作为链表使用。
例2
用queue将a(10)初始化为一个单向链接表:
For i = 0 To 9 a( i ).next = i + 1 ' i + 1为下一个元素的指针 a( i
).data=10*rnd Next i 如果再加上语句a(10).next =
0就构成了一个单向循环链表。通过改变指针的指向可以对链表进行插入和删除运算。