algorithms and ADTs (was Re: efficient idiomatic queue?)

Andrew Dalke dalke at dalkescientific.com
Wed Jan 16 05:36:11 CET 2002


Aahz Maruch wrote:
>Um, what's an ADT?

"abstract data type"

It's a data structure with associated methods (wasn't called
class nor object 20+ years ago) which can be used unchanged
in many different codes.

ADTS include lists, dicts, binary trees, priority queues, stack,
quad and oct trees.  Upon reflection, I seem to associate an
ADT with storage containers.

Here's the FOLDOC defintition from
  http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?ADT
> (ADT) A type whose internal form is hidden behind a set of access
> functions. Objects of the type are created and inspected only by
> calls to the access functions. This allows the implementation of
> the type to be changed without requiring any changes outside the
> module in which it is defined.

> Abstract data types are central to object-oriented programming
> where every class is an ADT.

But I wouldn't regard, say, the classes in rfy833.py as ADTs.

> A classic example of an ADT is a stack data type for which functions
> might be provided to create an empty stack, to push values onto a
> stack and to pop values from a stack.

                    Andrew
                    dalke at dalkescientific.com






More information about the Python-list mailing list