Welcome to DDS—Linked List, the web based linked list editor. This help page will get you started with the usage of DDS. You may resize this dialog by dragging an edge or corner. You may move this dialog by dragging its title bar. Click the in the upper corner to close this dialog.
Select one of the following topics to learn more about how to use DDS.
DDS—Linked List is a web based application to dynamically build, model, and manipulate linked lists.
DDS provides a Node
data type, with the data fields
payload
and next
.
Node
objects use a reference model of access and assignment.
class Node{ String payload; Node next; }The
next
field is a reference type
and is used to access another Node object.
You may create a Node
reference variable and instantiate Node
objects.
They are graphically represented on the screen.
A Node
reference variable is represented by its name
and source disk for the Node
reference.
A Node
object is represented as a box containing
the payload value and the source disk of the next reference.
References are modeled by a link from a Node
reference
to a Node
object.
The link is sourced from the small disk in the reference
and links to the box for a Node
object.
Null references are represented by a reference disk
with no attached link.
In this example,
the Node
reference list has a link
to the Node
object containing the payload value 123.
The next
field in the Node
object is null.
You can left click on a Node
reference or a Node
object to select it.
They can be dragged with the mouse to reposition them.
Selected references and objects have action buttons
used to modify the object that they reference.
DDS also provides a save and load data ability. It can download a PNG image of the current display.
DDS is a prototype system. While new features are periodically added, it lacks many features such as undo and selection of multiple items.
New Node
reference variables are created by clicking on the
button.
A dialog will prompt for the name of the Node
reference variable.
Type in the name, and click the
button.
The reference variable will appear on the screen. The blue hashing behind the variable indicates that it has been selected.
Node
objects
can be linked together
to form linked lists, by using the next
field to link to the
next Node
object.
Node
objects in a linked list are considered reachable if they are referenced by a Node
reference variable
or through one next
referenced by a
Node
reference variable.
The next
reference in a reachable object can be used as
the source or destination in an assignment.
The next
reference disk
in an unreachable object is shown in gray instead of black.
Any unreachable links are shown as gray dotted lines
instead of black solid lines.
Reachable nodes model the use of the code
list.next
or list.next.next
in an assignment, but prohibits the use of
any situation that models list.next.next.next
in an assignment.
This forces the use of a Node
reference variable
to walk
a list in order to access one of its members, much as a programmer must do in code.
The reachable node model also allows the removal
from the linked list of a
Node
that directly follows
a Node
object that is referenced by a
Node
reference variable.
In the previous image, we can unlink the Node
object that contains
the payload value "there."
The equivalent code is given by the following statement.
temp.next = temp.next.next;
Node
reference variables and Node
objects
can be dragged with the mouse to reposition them.
Do not press the mouse over the reference disk as that action is used
to initiate assignment.
The dragged object will be selected when the dragging is complete.
Dragging out of bound cancels the move and
restores the object to its initial position.
Node
reference variables and Node
objects
can be selected by clicking on them, except on the reference disk.
Selected objects will be outlined with a blue hash pattern.
If the object is reachable, an assignment pop-up menu will
appear in the menu bar.
Objects are also selected if they are the destination object of an assignment done by dragging a link or after they have been dragged with the mouse.
Pressing the mouse off of a selected object, will end the selection.
Assignments can be done by dragging a link or using a pop-up menu of assignment options.
Assignment can be done between two reachable reference disks by
dragging the link from the source reference disk to the destination disk.
Consider this assignment,
temp.next = list.next
Mouse down on the reference disk in the Node
object,
and drag to the reference disk in the Node
object.
Dragging out of bounds or to an unreachable reference disk,
cancels the assignment.
The resulting image shows the completed assignment.
When a Node
or Node
reference variable is
selected and is reachable, a menu
of assignment options will appear in
the main menu bar.
These are assigments that can be done to the
Node
reference variable
or to the next
member of a Node
object.
If object
is the selected object,
the following are the available assignment options.
object = new Node()
Instantiates a new Node
object.
A dialog box will pop up to enter the value for the payload.
object = object.next
Follow the next
link to get to the next Node
object.
This option will not appear if the next
link is null.
object = null
Set a Node
reference variable
or the next
field of a Node
object to null.
There are four buttons on the right of the command tool bar that allow the user to load a linked list model, download a linked list model, download an image of the model, collect garbage, and get help.
Load a saved file.
Download a file to save the current data.
Download a PNG image of the current display.
Clean up garbage.
Display this help file.
DDS—Linked List, version 0.2 test version. The software will be updated as features are added.
© 2015-2017, Dr. Robert A. Ravenscroft, Jr.
You may use this software as-is, free of charge for academic purposes.
This program is provided 'as is' without warranty of any kind, expressed or implied.