41 lines
635 B
Ruby
41 lines
635 B
Ruby
# This file contains the Ruby code from book of
|
|
# "Data Structures and Algorithms
|
|
# with Object-Oriented Design Patterns in Ruby"
|
|
# by Bruno R. Preiss.
|
|
#
|
|
# Copyright (c) 2004 by Bruno R. Preiss, P.Eng. All rights reserved.
|
|
|
|
module PriorityQueueMethods
|
|
|
|
abstractmethod :enqueue
|
|
|
|
abstractmethod :min
|
|
|
|
abstractmethod :dequeueMin
|
|
|
|
end
|
|
|
|
class PriorityQueue < Container
|
|
|
|
def initialize
|
|
super
|
|
end
|
|
|
|
include PriorityQueueMethods
|
|
|
|
end
|
|
|
|
module MergeablePriorityQueueMethods
|
|
|
|
abstractmethod :merge!
|
|
end
|
|
|
|
class MergeablePriorityQueue < PriorityQueue
|
|
|
|
def initialize
|
|
super
|
|
end
|
|
|
|
include MergeablePriorityQueueMethods
|
|
|
|
end |