Documentation: In Depth API User Guide
API implements abstract data types and data structures using polymorphic principles. Each interface corresponds to an abstract data type
and each class corresponds to one or more layers of data structures built on top.
What are the classes and interfaces API implements?
Following abstract data types and data structures have been implemented:
- List: interface that defines operations of List abstract data type with following classes built on top:
- Map: interface that defines operations of Associative Array abstract data type with following classes built on top:
- Set: interface that defines operations of Set abstract data type with following classes built on top:
- Container: interface that defines operations of Container abstract data type with following classes built on top:
- Tree: interface that defines operations of Tree abstract data type with following classes built on top:
- Graph: interface that defines operations of Graph abstract data type with following classes built on top:
User dependencies
Some of classes above require developers to implement C functions built via template specialization for each data type used:
- comparators: comparison functions that need to be created by developers for each data type used (API comes only with long and char* support by default). Required by all classes, except Container
- hashers: hash functions that need to be created by developers for each data type used (API comes only with long and char* support by default). Required by all classes that rely on a Hash Table.
How can above classes and interfaces be iterated?
All above interfaces and classes, with exception of Container instances (who are supposed to behave like black boxes), are iterable/traversable.
Unlike STL iterators, this API takes advantage of polymorphism and iterates by abstractions (interfaces / abstract classes) with the exception of Tree implementations: