回 帖 发 新 帖 刷新版面

主题:学习vb的一个很大疑惑

小弟刚学vb,有一很大的疑惑,像vb,matlab之类的语言都没有指针,那么怎么像c++那样构造链表呢?如果没有又怎样才能做到像链表那样能在常数时间内增减内容?数组和链表不是最基本的结构么?缺少一个岂不是那怎么行,在很多算法实现上都遇到很大困难。
    有哪位大哥大姐能帮小弟解觉这个疑惑呢?小弟不胜感激

回复列表 (共7个回复)

沙发

用数组呀,用户自定义类型等

板凳

[quote]用数组呀,用户自定义类型等[/quote]
但数组在添加或删减元素时要线性时间,而链表只要常数时间。我想过用记录,定义一个字符变量用来存接着它的那个变量的名称,这样有点像指针的作用,但这样又有个问题,一个长长的链表有多少个节就要多少个变量名,很不方便。

3 楼

我曾经用字符串代替链表

4 楼

type nude
f as integer '前驱指针
o as integer '内容 
b as integer '后续指针
end type

dim aa(1 to 10) as nude
dim p as integer
'
'链表初始化略
'
aa(1).b=5  '做删除操作,2,3,4被删
aa(5).f=1

'遍历这些元素
p=1
do
  debug.? aa(p).o
  p=aa(p).b
loop until p=0

应该是可以较方便的做到的,大概是这个意思,就是浪费点内存

5 楼

可以用
Collection 代替链表,数组,向量
Scripting.Dictionary 代替Map

6 楼

VB中的指针:  
http://tech.sina.com.cn/s/s/2005-02-17/1407528662.shtml

7 楼

非常感谢各位,尤其是天天学习,给出了一篇这么好的文章。

我来回复

您尚未登录,请登录后再回复。点此登录或注册