这样相当于一个链表,在vb是不允许这样定义的,不过你可以这样定义:
 
type nodex  name as string
  class as string
  old as integer
  nextnode as longend nodex其中nextnode 是指向下一个node的地址例子:
 dim head as nodex '指向链表头
 
 dim secd as nodex '第二个节点 head。nextnode =  varptr(secd)'varptr获取secd的地址 等一下告诉你怎么操作里面的数据
 

解决方案 »

  1.   

    最后一句怎么是End nodex啊,应该是End Type吧
    关于nextnode as nodex这句我不知道,关注……
      

  2.   

    你定义为nextnode as long这样产生数据链表的时候,会把下一个接点丢失吗?
    如 
    type nodex
     name as string
     nextnode as long
    end typedim head as nodex
    dim secd as nodexset head = new nodex
    set secd as nodex = new nodex
    set head.nextnode = secd
    set secd = nothing
    set secd = new nodex
    这样下的 head.nextnode 会被vb释放吗?
      

  3.   

    续:
      数据操作要用到api函数才能高定,定义一个API,拷贝内存函数:
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)比如你知道一个节点的head想得到它的下个节点数据可以这样操作:
     
    dim address as longaddress = head。nextnodedim next as nodexcallcopymemory(next,byval address,len(next))好了你的next已经保存了head的下个节点的数据。注意:
      在定义所有节点的时候必须都在同个声明范围最好都是全局变量,还有在进行copymemory时,必须检查address的数值,必须非0
      

  4.   

    但treeview中的node 类型很成功的定义了自指向类型数据,请高手赐教
      

  5.   

    如果你定义的是全局变量就不会被释放,不过不能动态分配内存的话,数据链
    失去了意义,我建议你用:
    Private Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
    api函数分配内存
      

  6.   

    treeview中的node 是一个类而已,你是想创建一个数据集合而不是链表,那太简单了,用vb里面的类
      

  7.   

    Microsoft为什么不把VB的简便与VC的灵活柔和起来?
      

  8.   

    如果你用类的话,就不用了可以像treeview中的node 那样进行操作,你有没有做过类集合
      

  9.   

    你有什么联系方法吗?这里太不好用,比如QQ,yahoo messager? 我希望和你讨论一下
      

  10.   

    你是不是只想储存一些数据,可以:
       Dim c As New Collection
       c。add(“ab”)
       c。add(1000)
    Collection中可以加入Variant类型的数据