Example Code Discussion
classdef dlnode < handle “dlnode Class Design” on page 3-31
“Why a Handle Class for Linked Lists?”
on page 3-34
“Comparison of Handle and Value
Classes” on page 7-2
properties
Data
end
“dlnode Class Design” on page 3-31
properties (SetAccess = private)
Next = dlnode.empty
Prev = dlnode.empty
end
“Property Attributes” on page 8-9:
SetAccess.
Initialize these properties to empty
dlnode objects.
For general information about properties,
see “Property Syntax” on page 8-5
methods For general information about methods,
see“Methods in Class Design” on page 9-
2
function node = dlnode(Data)
if (nargin > 0)
node.Data = Data;
end
end
Creating an individual node (not
connected) requires only the data.
For general information about
constructors, see “Guidelines for
Constructors” on page 9-23
function insertAfter(newNode, nodeBefore)
removeNode(newNode);
newNode.Next = nodeBefore.Next;
newNode.Prev = nodeBefore;
if ~isempty(nodeBefore.Next)
nodeBefore.Next.Prev = newNode;
end
nodeBefore.Next = newNode;
end
Insert node into a doubly linked list after
specified node, or link the two specified
nodes if there is not already a list. Assigns
the correct values for Next and Prev
properties.
“Insert Nodes” on page 3-39
Implementing Linked Lists with Classes