**15.0 Chapter Goals**

The purpose of this chapter is to develop some more advanced data structure ideas, to explore some of the problems and pitfalls of using pointers, and to provoke the reader to think about the issues raised by attempts to make software as generic as possible. On completing the chapter, the student should understand and be able to use the following:

### Data Representation Abstractions

*General:*

*
** *Handles, B-trees and Heaps are defined in Chapter 15.

*
*Realized in the Modula-2 notation:

B-trees and Heaps are implemented, and a probable (implementation defined) implementation of handles is discussed.

### Data Manipulation Abstractions

*General:*

*
** *The problem of generic handling of data and algorithms is revisited and pointers are discussed again at some length.

* Realized in the Modula-2 notation:*

the structure of B-Trees and Heaps and the heapsort

### Programming Abstractions

*General:*

Memory fragmentation and garbage are discussed, and some possible solutions to these problems are explored. Programming for genericity is emphasized.

* Realized in the Modula-2 notation:*

Some additional genericity is achieved using ISO Standard Modula-2.

Contents