转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
循环链表以及相关操作(VB实现)         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1415 更新时间:2009/4/23 16:38:02

                              循环链表以及相关操作(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
          DoEvents
      Wend
      Set n.nextnode = pointer.nextnode
      Set pointer = Nothing
      Set pointer = n
   End If
     counts = 0
   Set pointer = head
      counts = counts + 1
      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
End Sub
Private Sub insert_Click()
  Dim a As Long
  Dim b As Long
  a = CLng(InputBox("输入要插入的一个数据", "输入数据"))
  b = CLng(InputBox("输入该数据的位置", "位置"))
  Set pointer = head
  If b = 1 Then
  head.x = a
  Else
  While pointer.count <> b
  Set pointer = pointer.nextnode
    DoEvents
  Wend
  pointer.x = a
  End If
End Sub

Private Sub insert2_Click()
  Dim a As Long
  Dim b As Long
  a = CLng(InputBox("输入要删除的一个数据", "输入数据"))
  b = CLng(InputBox("输入该数据的位置", "位置"))
  Set pointer = head
  If b = 1 Then
   Set n = New node
   n.x = a
   Set n.nextnode = Nothing
   Do
    Set pointer = pointer.nextnode
    If ObjPtr(pointer.nextnode) = ObjPtr(head) Then
         Set pointer.nextnode = n
         Set n.nextnode = head
         Set head = n
         Exit Do
    End If
    Loop While Not pointer Is Nothing
    Set pointer = head
    counts = 1
    pointer.count = 1
    Do
     counts = counts + 1
     Set pointer = pointer.nextnode
     pointer.count = counts
     If ObjPtr(pointer.nextnode) = ObjPtr(head) Then
             Exit Do
     End If
     Loop While Not pointer Is Nothing
   Else
   Set n = New node
       n.x = a
     Set n.nextnode = Nothing
    While pointer.count <> b
       Set temp = New node
       Set temp = pointer
       Set pointer = pointer.nextnode
       DoEvents
     Wend
     Set n.nextnode = pointer
     Set temp.nextnode = n
     Set pointer = n
     Set pointer = head
     counts = 1
     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
     Loop While Not pointer Is Nothing
   End If
End Sub

Private Sub konglianbiao_Click()
Set pointer = head
Do
    Set pointer = pointer.nextnode
    If ObjPtr(pointer.nextnode) = ObjPtr(head) Then
               Set pointer.nextnode = Nothing
               Set n = New node
               Set n = pointer
    End If
   DoEvents
Loop While Not pointer.nextnode Is Nothing
 Do
   Set pointer = head
   Set head = head.nextnode
  Set pointer = Nothing
    If ObjPtr(head) = ObjPtr(n) Then
           Set head = Nothing
     &nb

[1] [2]  下一页


[VB.NET程序]MX记录获取组件(vb实现)  [VB.NET程序]浏览文件夹中的图片(用VB实现)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台