循环链表以及相关操作(VB实现)[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 ywchen2000 的 blog

                              循环链表以及相关操作(vb实现)
首先建立一个工程,然后增加一个类并且命名为(node,cls),
在node.cls中加入以下代码.
option explicit
public x as long
public count as long
public nextnode as node
在form1.frm中加入以下代码。
option explicit
 dim head as node
 dim pointer as node
 dim newnode as node
 dim n as node
dim counts as long
dim temp as node
private sub createlist_click()
 dim n as node
 dim i as long
 counts = 0
 set head = new node                                            '可选的。通常在声明时使用 new,以便可以隐式创建对象。如果 new 与 set 一起使用,则将创建该类的一个新实例。如果 objectvar 包含了一个对象引用,则在赋新值时释放该引用
  head.x = 8
  set head.nextnode = nothing
  counts = counts + 1
  head.count = counts
  set pointer = head
  for i = 1 to 15
  set newnode = new node
   newnode.x = i
   counts = counts + 1
   newnode.count = counts
   set newnode.nextnode = nothing
   set pointer.nextnode = newnode
   set pointer = newnode
  next i
 set pointer.nextnode = head
 set pointer = head
  do
        print pointer.x
        set pointer = pointer.nextnode
        if objptr(pointer) = objptr(head) then                 'objptr返回对象的地址
             exit sub                                          'strptr返回变长字符串的字符串数据地址
        end if                                                 'varptr返回变量的地址
        doevents                                               '用与获取变量地址,是函数。
 loop while not pointer is nothing
end sub
private sub delete_click()
  dim a as long
  dim b as long
  a = clng(inputbox("输入要删除的一个数据", "输入数据"))
  b = clng(inputbox("输入该数据的位置", "位置"))
   set pointer = head
  if b = 1 then
     do
      set pointer = pointer.nextnode
       if objptr(pointer.nextnode) = objptr(head) then
             set pointer.nextnode = head.nextnode
             set head = nothing
             set head = pointer.nextnode
            exit do
       end if
      doevents
     loop while not pointer is nothing
     counts = 1
    set pointer = head
    pointer.count = counts
    do
        counts = counts + 1
        set pointer = pointer.nextnode
        pointer.count = counts
      if objptr(pointer.nextnode) = objptr(head) then
             exit do
      end if
      doevents
     loop while not pointer is nothing
else
      while pointer.count <> b
          set n = new node
           set n = pointer
           set pointer = pointer.nextnode

本文关键:VB 数据结构
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top