47 lines
691 B
Ruby
47 lines
691 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 SearchableContainerMethods
|
|
|
|
abstractmethod :member?
|
|
|
|
abstractmethod :insert
|
|
|
|
abstractmethod :withdraw
|
|
|
|
abstractmethod :find
|
|
|
|
end
|
|
|
|
class SearchableContainer < Container
|
|
|
|
include SearchableContainerMethods
|
|
|
|
def initialize
|
|
super
|
|
end
|
|
|
|
end
|
|
|
|
module SearchTreeMethods
|
|
|
|
abstractmethod :min
|
|
|
|
abstractmethod :max
|
|
|
|
end
|
|
|
|
class SearchTree < Tree
|
|
|
|
def initialize
|
|
super
|
|
end
|
|
|
|
include SearchableContainerMethods
|
|
include SearchTreeMethods
|
|
|
|
end |