Tôi muốn triển khai lớp xếp hàng ưu tiên. Khi một mục được thêm ở mức độ ưu tiên cao hơn, nó sẽ được đẩy lên phía trước của hàng đợi thay vì thêm vào cuối hàng đợi.Câu hỏi kế thừa từ Danh sách (của T) lớp
vài dòng đơn giản mã
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
Bây giờ chức năng gọi điện thoại cố gắng tìm ra các yếu tố trong hàng đợi như vậy ....
dim _q as new PriorityQueue(Of integer)
_q.Enque(1)
_q.Enque(2)
msgbox(_q.Count())
.....
chương trình in ra 0! Nếu thêm thuộc tính Count() thì mọi thứ đều ổn. Tôi đã nghĩ rằng lớp kế thừa nên gọi hàm Count của lớp cơ sở. Lưu ý rằng Đếm hiển thị trong intellisense ngay cả khi tôi không có thực hiện trong lớp dẫn xuất.
Vui lòng đánh dấu là mã: "dim _q as new PriorityQueue (Of integer) _q.Enque (1) _q.Enque (2) msgbox (_q.Count())" –