New App: Learning How Lists Work

We are proud to present a new stand-alone app: VOLS (Visualization of List Structures) is a directly runnable JAR file that uses ANIMAL as the rendering engine for visualizing the behaviour of the following types of list structures:

  • singly-linked lists
  • doubly-linked lists
  • array-based lists

ANIMAL animations usually allow the user to configure the input values and graphical properties of animations using the built-in “Generators”. However, once the generator has been executed and the animation has been created, the user can only passively interact with it using the “play controls” (forward, backward, step, …). 

VOLS takes a different approach and supports the following:

  • a single-window approach with resizable sub windows for the documentation, list structure visualization and the code visualization,
  • a full HTML-based documentation of the different list structures covered. This documentation explains the list structure and the standard operations (adding or removing an element and replacing the value of an element contained in the list),
  • a separate display of the list structure visualization and the associated code lines (including code highlighting to show the current line of code being executed),
  • adjustable zoom controls for both the list structure visualization and the code; both can be adjusted according to the user’s wishes
  • interactive modification of the list as the visualization runs. By right-clicking on the list, values can be added, removed or replaced in the chosen location (these controls are also available as “traditional” buttons),
  • the option to directly execute a chosen add, remove or replace action - the animation code is created, but the app directly jumps to the end of the executed step. Alternatively, the animation starts with the beginning of the currently selected action. In both cases, all intermediate states can be seen by stepping through the animation or “playing” it from the beginning, or any arbitrary location,
  • based on ANIMAL, of course the usual control features including a full rewind and unlimited stepping backwards are supported.

Here are some images to give you an impression and whet your appetite to download the app!

The image below shows the app’s main window, including the toolbar at the top, the start of the HTML documentation pages (left) and the interaction/visualization window (right).


Users can simply insert, remove or replace elements by right-clicking on a position inside the list and choosing from the popup window. Of course, the same action is possible using the buttons in the toolbar, but the user will then have to provide the chosen index manually. (To save space, only the interaction part of the app was included in this image.)


A scaled-down excerpt of the app showing a step during adding a new element to a doubly-linked list, with the animation at the top and the underlying code at the bottom.


An example of the HTML documentation provided with the app, here for the general workings of a doubly-linked list.


© Dr. Guido Rößling 1998-today