我希望能实现一个优先队列类。当一个项目以较高的优先级添加时,它被推到队列的前面,而不是添加到队列的末尾。
简单几行代码:
现在,调用函数试图在队列中查找元素,因此...
程序打印出0!如果添加一个Count()属性,那么一切都好了。我本以为继承类应该调用基类的Count函数。请注意,即使在派生类中没有实现,Count也会出现在Intellisense中。
简单几行代码:
Public Class PriorityQueue(Of T)
Inherits List(Of T)
Private _list As New List(Of T)
Public Sub Enque(ByVal item As T, Optional ByVal pushToFront As Boolean = False)
If pushToFront = True Then
_list.Insert(0, item)
Else
_list.Add(item)
End If
End Sub
Public Function Deque() As T
If _list.Count <> 0 Then
Dim item As T = _list(0)
_list.RemoveAt(0)
Return item
Else
Throw New InvalidOperationException
End If
End Function
End Class
现在,调用函数试图在队列中查找元素,因此...
dim _q as new PriorityQueue(Of integer)
_q.Enque(1)
_q.Enque(2)
msgbox(_q.Count())
程序打印出0!如果添加一个Count()属性,那么一切都好了。我本以为继承类应该调用基类的Count函数。请注意,即使在派生类中没有实现,Count也会出现在Intellisense中。