主题:学习vb的一个很大疑惑
永恒的回忆
[专家分:810] 发布于 2008-08-07 18:28:00
小弟刚学vb,有一很大的疑惑,像vb,matlab之类的语言都没有指针,那么怎么像c++那样构造链表呢?如果没有又怎样才能做到像链表那样能在常数时间内增减内容?数组和链表不是最基本的结构么?缺少一个岂不是那怎么行,在很多算法实现上都遇到很大困难。
有哪位大哥大姐能帮小弟解觉这个疑惑呢?小弟不胜感激
回复列表 (共7个回复)
沙发
我是大喊三 [专家分:3010] 发布于 2008-08-07 21:12:00
用数组呀,用户自定义类型等
板凳
永恒的回忆 [专家分:810] 发布于 2008-08-07 23:21:00
[quote]用数组呀,用户自定义类型等[/quote]
但数组在添加或删减元素时要线性时间,而链表只要常数时间。我想过用记录,定义一个字符变量用来存接着它的那个变量的名称,这样有点像指针的作用,但这样又有个问题,一个长长的链表有多少个节就要多少个变量名,很不方便。
3 楼
moz [专家分:37620] 发布于 2008-08-08 00:39:00
我曾经用字符串代替链表
4 楼
我是大喊三 [专家分:3010] 发布于 2008-08-08 03:16:00
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 楼
sonicandy [专家分:180] 发布于 2008-08-08 13:15:00
可以用
Collection 代替链表,数组,向量
Scripting.Dictionary 代替Map
6 楼
天天学习 [专家分:4570] 发布于 2008-08-09 15:49:00
VB中的指针:
http://tech.sina.com.cn/s/s/2005-02-17/1407528662.shtml
7 楼
永恒的回忆 [专家分:810] 发布于 2008-08-09 22:37:00
非常感谢各位,尤其是天天学习,给出了一篇这么好的文章。
我来回复