Data and algorithms that form data-structures that exhibit some well specified behavior and performance characteristics.