Book contents
10 - Appendix
Published online by Cambridge University Press: 25 January 2011
Summary
In the following I collected some comments on relevant concepts, useful techniques, and the subject choices and restrictions of this book.
The Pointer Machine and Alternative Computation Models
In this book we restricted ourselves as far as possible to structures that can be represented in the model of the pointer machine and excluded structures that require stronger models of computation.
In the pointer machine, the memory consists of nodes that are of size O(1), each node containing possibly some values and some pointers to other nodes. The only thing we can do with these pointers is to follow them and create a pointer to a given node, or create a node and a pointer to it. All operations on pointers, as well as the creation and deletion of nodes, take constant time.
Almost all our structures fall into this model, the main exception being the hash tables, which were included for their great practical importance. In hash tables we compute a pointer out of some input data; there is no “pointer arithmetic” in the pointer machine. The other exceptions are our frequent use of arrays for stacks and the array-based heaps, which both again require address computations and non-constant-sized memory objects. We include these structures for their efficiency, but could have avoided them: the linkedlist implementation of a stack is an obvious example of a pointer-machine structure, and we gave many heaps that fall into this model.
- Type
- Chapter
- Information
- Advanced Data Structures , pp. 406 - 414Publisher: Cambridge University PressPrint publication year: 2008