请教VB如何实现链表?

seeku 2003-05-08 10:01:15
我要保存大量的,不定数量的结构类型的信息,
如果是使用C,我就会使用链表,不知道VB怎么来实现?

听说VB的数组是可变长度的,不知道怎么做的

谢谢(刚刚尝到VB快速开发的甜头,却发现。。。)
...全文
187 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
richardbao 2003-05-10
  • 打赏
  • 举报
回复
不行的,VB的数组如果缩短,只能去除最后的元素。我是老早做的 VB 链表,现在早忘了,源码也没有了,但是我当时好像是这么干的:

把元素 0 空出来做链表头,如果某元素的索引指向 0 元素,就说明这个元素是空的,可以放数据,如果不是指向 0,说明已经被使用。我当时专门有一个函数用来返回数组中第一个可以使用的元素变量。

总体效果还是差不多的,至少我认为。
seeku 2003-05-09
  • 打赏
  • 举报
回复
突然想到一个问题,如果我想删除(richardbao(Richard Bao)谈到的)链表的中间的某个变量,不知道VB能否释放内存?
seeku 2003-05-09
  • 打赏
  • 举报
回复
谢谢两位,尤其richardbao(Richard Bao)的算法比较妙,
只是有点古怪
呵呵
richardbao 2003-05-09
  • 打赏
  • 举报
回复
忘了说,VB 里声明数组:

Dim MyArr(8) As Integer

事实上定义了 9 个变量,你可以自己试试,从 MyArr(0) 到 MyArr(8)。
richardbao 2003-05-09
  • 打赏
  • 举报
回复
先告诉你 VB 数组变长要加 Preserve 才会保留数据,不要还没有弄清楚就乱骂 VB。

Dim MyArr(n) As Integer

Redim Preserve MyArr(m)

至于链表,我的方法是这样,仿照 C 的方法先定义一个类型

Type LinkTable
Data As ...
NextIndex As Long
End Type

然后建立一个数组用来放数据:

Dim LinkedData(...) As LinkTable

然后你就像 C 一样的用嘛,NextIndex 里面不要放地址指针,放数据的下标索引不就可以了?效果差不多的,就是代码看起来没有 C 那么爽而已!
seeku 2003-05-08
  • 打赏
  • 举报
回复
的确要看看书,我学VB是半路出家,没有系统学习过
高一的时候学过BASIC,呵呵
xayzmb 2003-05-08
  • 打赏
  • 举报
回复
自已笨不要怪别人....
呵呵
^_^
去查书吧.
seeku 2003-05-08
  • 打赏
  • 举报
回复
经过测试,redim会把数组的内容清空
Dim lArr() As Long

ReDim lArr(5)
For i = 0 To 4
lArr(i) = i
Next i
ReDim lArr(8)
lArr(5) = lArr(0)
lArr(6) = lArr(3)
lArr(7) = lArr(4)
现在lArr的8个值都是0了
什么变长啊,都是骗人的
MSSQL 2003-05-08
  • 打赏
  • 举报
回复
dim arr() as yourtype
.
.
.
.
.
redim arr(n)
lihonggen0 2003-05-08
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/Read_Article.asp?Id=16430


循环链表以及相关操作(VB实现)
seeku 2003-05-08
  • 打赏
  • 举报
回复
数组我应该搞定了,使用数组也可以完成我要的效果,只是不知道效率如何。

我的第一个问题有没有人会啊?
用VB怎么做链表?
如何表示指针变量?如果根据指针变量取得内容?
如果VB连这个都做不了,如何实现更复杂的数据结构啊?

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧