在VisualBasic编程中运用数据结构
介绍
Basic语言有很高的普及度。同时,在Windows操作系统中,Visual Basic以其功能强大、代码量小、简单易用、所见即所得的可视化界面赢得了广大基础程序员的好评。然而,在数值计算、结构计算和项目管理系统的编程中,如何构造数据结构和设计相应的算法常常困扰着他们。其实在VB中使用数组(尤其是动态数组)和自定义数据类型(Type语句)可以完整的描述链表、堆栈、队列、二叉树等结构,实现排序、搜索等操作,机制也非常灵活。
2.VB编程中链表、栈和队列数据结构的实现
2.1数组和自定义数据类型的作用
为了理解数组的作用,我们引入了数据字段和指针字段的概念。在数据字段中,存储数组中每个元素的值,在指针字段中,存储数组中值的位置。这两者是一一对应的。指针的上限指向数组第一个元素的位置,下限指向最后一个元素的位置。数组中的元素是内存中连续的线性节点序列,这种线性数据结构是应用最广泛也是最简单的数据结构。
自定义数据类型语句可以包含许多不同数据类型的相互关联的元素,VB定义自定义数据类型必须在模块级声明。声明自定义数据类型后,可以定义该类型的变量。
示例1使用名为queue的自定义数据类型声明一个固定大小的数组:
Type
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将a(10)初始化为带有队列的单向链接表:
For =到9
a (i)。next = i+1' i+1是指向下一个元素
a (i)的指针。data = 10 * rnd
下一个I。
如果语句a(10)。添加next = 0,形成单向循环链表。您可以通过更改指针来插入和删除链接列表。
0条评论