注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

VB6 数组 生成 链表  

2014-10-31 00:20:37|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

'clsLink
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Private mLinkValue() As String????????????? '链表数据
Private LinkNo() As Long??????????????????? '链表数组
Private mlngLinkCount As Long?????????????? '数据个数
rivate mlngCurrentPosition As Long???????? '当前所在位置
Private mlngRealLinkCount As Long?????????? '实际上所用的数据个数
'链表个数
Public Property Get LinkCount() As Long
??? LinkCount = mlngLinkCount
End Property
Public Property Let LinkCount(Value As Long)
Dim lngCount As Long
??? If mlngLinkCount > Value Then
??????? For lngCount = mlngLinkCount - 1 To Value Step -1
??????????? RemoveLink lngCount
??????? Next
??? ElseIf mlngLinkCount < Value Then
??????? For lngCount = mlngLinkCount To Value - 1
??????????? AddLink ""
??????? Next
??? End If
??? mlngLinkCount = Value
End Property
'链表值
Public Property Get LinkValue(ByVal lngPos As Long) As String
??? If lngPos >= 0 Then
??????? LinkValue = mLinkValue(LinkNo(lngPos))
??? End If
End Property
Public Property Let TextMatrix(ByVal lngPos As Long, ByVal Value As String)
??? mLinkValue(LinkNo(lngPos)) = Value
End Property
'数组生成链表
Public Sub ArrToLinkTable(strValue() As String)
Dim lngPos As Long
??? mLinkValue = strValue
??? mlngLinkCount = 0
??? mlngLinkCount = UBound(strValue) + 1
??? '没有数据且固定行为0
??? If mlngLinkCount <= 0 Then
??????? Erase mLinkValue
??????? Erase LinkNo
??????? Exit Sub
??? End If
??? ReDim LinkNo(mlngLinkCount - 1)
??? '设置链表数组
??? For lngPos = 0 To mlngLinkCount - 1
??????? LinkNo(lngPos) = lngPos
??? Next
??? mlngRealLinkCount = mlngLinkCount
End Sub
'添加一个链表单元
Public Sub AddLink(ByVal strValue As String, Optional ByVal lngPos As Long = -1)
Dim lngTemp As Long
Dim lngI As Long
Dim lngLeft As Long
??? mlngRealLinkCount = mlngRealLinkCount + 1
??? mlngLinkCount = mlngLinkCount + 1
??? ReDim Preserve LinkNo(mlngLinkCount - 1)
??? ReDim Preserve mLinkValue(mlngRealLinkCount - 1)
??? mLinkValue(mlngRealLinkCount - 1) = strValue
??? If lngPos = -1 Then
??????? LinkNo(mlngLinkCount - 1) = mlngRealLinkCount - 1
??? Else
??????? lngTemp = LinkNo(lngPos)
??????? For lngI = mlngLinkCount - 2 To lngPos Step -1
??????????? LinkNo(lngI + 1) = LinkNo(lngI)
??????? Next
??????? LinkNo(lngI) = mlngRealLinkCount - 1
??? End If
End Sub
'删除一个链表单元
Public Sub RemoveLink(ByVal lngDeletePos As Long)
Dim lngI As Long
??? For lngI = lngDeletePos To mlngLinkCount - 2
??????? LinkNo(lngI) = LinkNo(lngI + 1)
??? Next
??? mlngLinkCount = mlngLinkCount - 1
??? ReDim Preserve LinkNo(mlngLinkCount - 1)
End Sub
'排序操作
Private Sub SetSort(intType As Integer)
End Sub
Private Sub Class_Terminate()
??? Erase mLinkValue
??? Erase LinkNo
End Sub
测试代码:
Private Sub Command1_Click()
Dim clsTestLink As clsLink
Dim strValue() As String
Dim lngI As Long
Dim lngCount As Long
??? lngCount = 9
??? ReDim strValue(lngCount)
??? For lngI = 0 To lngCount
??????? strValue(lngI) = lngI
??? Next
??? Set clsTestLink = New clsLink
??? clsTestLink.ArrToLinkTable strValue
??? Debug.Print "初始化操作"
??? For lngI = 0 To clsTestLink.LinkCount - 1
??????? Debug.Print clsTestLink.LinkValue(lngI)
??? Next
??? Debug.Print "插入操作"
??? clsTestLink.AddLink "Insert One", 2
??? clsTestLink.AddLink "Insert Two", 7
??? clsTestLink.AddLink "Insert Three"
??? For lngI = 0 To clsTestLink.LinkCount - 1
??????? Debug.Print clsTestLink.LinkValue(lngI)
??? Next
??? Debug.Print "删除操作"
??? clsTestLink.RemoveLink 2
??? clsTestLink.RemoveLink 6
??? clsTestLink.RemoveLink 1
??? For lngI = 0 To clsTestLink.LinkCount - 1
??????? Debug.Print clsTestLink.LinkValue(lngI)
??? Next
End Sub
可以扩展链表数据数组为结构或者类,就可以存储很多数据了
其他功能也可以扩展

  评论这张
 
阅读(238)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018