Abstract Data Types and Data Structures

This site is dedicated at teaching abstract data types and data structures built on their framework as well as providing a C++ API that stands on their foundation: one of endless possible but uniquely fast, thanks of being done with elegance and simplicity in mind.


Covering complete list of abstract data types and data stuctures (if there is any) is a monumental task outside of this site's scope. Only types/structures considered to be potentially useful in a developer's day-to-day life will be covered here!

Abstract Data Types

Abstract Data Types are abstract data units defined by properties and operations without implementation suggestions. Following were found useful enough to be covered:

Data Structures

Data Structures are concrete data units that provide implementation to one or more abstract data types. Following are covered to implement abstract data types above:

Most strongly typed programming languages come with an official implementation for some of structures above (STL @ C++ or Collections @ Java) but only API below covers them all.

Practice: C++ API

Building an API that partly overlaps with STL looks like textbook "wheel reinventing". Unlike STL, however, this API covers all types/structures above and employs a harmonical architecture instead:

Last but not least, this API invites other developers to contribute and exercise their skills to solve pending tasks or add new algorithms/types/structures not supported already while keeping same coding/stability standards!

How does it work?

Abstract Data Types and Data Structures C++ API, or C++ ADT & DS API, is nothing more than a collection of decoupled components and their dependencies designed polymorphically by interface-implementation principle:

To learn more about it, you first need to have firm theoretical knowledge of abstract data types and data structures. If you have it already, go to documentation!

How powerful is it?

Entire implementation of this API was geared towards simplicity and memory/speed efficiency. The end result can be checked in benchmarks page, showing identical memory consumption but superior speed compared to STL. Below chart shows how long it takes to insert a million long entries, for each API class and STL equivalent, measured in milliseconds:

How to install it?

To install API go to installation page and follow steps described there then go through documentation page to learn how to use it. If you just want to see sources, go to https://github.com/aherne/c-data-structures-api.