Data Structure Visualisation

Supervisor: David Watt

Abstract

Every course on data structures is illustrated by diagrams of linked lists, binary trees, hash tables, etc. However, it is hard to illustrate the dynamic behaviour of data structures, especially on the large scale, without consuming either an inordinate amount of space in the course notes or an inordinate amount of time at the classroom board.

A computer-assisted data visualisation system would allow quick and reliable display of data structures, under the control of the instructor or student. The instructor could use the system to enliven lectures or tutorials. The student could use it to study the data structures in his/her own time.

The objective of this project is to design and implement such a data visualisation system. The system must graphically display the effects of operations on the data structure, chosen by the user from a menu. The system must have a good user interface, and it must be capable of displaying large data structures as well as small.

In the first place the system should support visualisation of one particular data structure, say a binary search tree representing a set. However, it must be easily adaptable for other data structures. If time permits, it should be adapted to an alternative data structure, say a hash table representing a set.

A good choice of programming language would be Java, whose object-orientedness would provide the desired adaptibility, and whose java.awt package would provide the necessary graphical facilities. C and Pascal are possible alternatives.

Resources

Hardware: any workstation with a graphics screen.

Software: Java, C, or Pascal with graphics package.