vba 背包实现

' 背包的作用,只负责搜集,在搜集完成后循环遍历背包内的对象,没有多余的用途

Private head As Node

Private n As Long


Sub add(i As Variant)
    Dim newNode As New Node
    
    newNode.letItem = i
    newNode.letNext = head
    
    Set head = newNode
    n = n + 1
    
    
End Sub

Public Function size() As Long
    size = n
End Function

Public Function isEmpty() As Boolean
    isEmpty = head Is Nothing
End Function


Public Function hasNext() As Boolean
    hasNext = Not head Is Nothing
End Function

Public Function doNext() As Variant
    If isEmpty() Then Err.Raise 404, "Bag.doNext", "背包已经空了,没有下一个。"
    assign doNext, head.getItem
    Set head = head.getNext
    n = n - 1
End Function


Private Sub assign(ByRef x, ByVal y)

    If IsObject(y) Then
        Set x = y
    Else
        x = y
    End If

End Sub


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值