EiffelBase, Sets
Sets are containers where successive occurrences of the same item are not distinguished: inserting the same item twice has the same observable effect as inserting it once.
Deferred classes
The most general class describing sets is SET . The usual operations of set theory such as union and intersection have been relegated to SUBSET , an heir of SET . This enables a class to inherit from SET without having to effect these operations if it satisfies the basic set property but has no convenient implementation of the subset operations.
Sets without a notion of order
LINKED_SET provides a basic implementation of SET by linked lists.
Sets of comparable elements and sorted sets
The deferred class COMPARABLE_SET , declared as
deferred class
COMPARABLE_SET [G -> COMPARABLE]
inherit
SUBSET [G]
COMPARABLE_STRUCT [G]
...
describes sets whose items may be compared by a total order relation. The class has the features min and max .
Two implementations of COMPARABLE_SET are provided. One, TWO_WAY_SORTED_SET , uses sorted two-way lists. The other, BINARY_SEARCH_TREE_SET , uses binary search trees.
If the items are partially rather than totally ordered, you may use the class PART_SORTED_SET [G -> PART_COMPARABLE]], which uses a two-way sorted list implementation.