MATLAB Object-Oriented Programming

(Joyce) #1

Expand for Class Code


classdef dlnode < handle
% dlnode A class to represent a doubly-linked node.
% Link multiple dlnode objects together to create linked lists.
properties


Static Data


end
properties(SetAccess = private)
Next = dlnode.empty
Prev = dlnode.empty
end


methods
function node = dlnode(Data)
% Construct a dlnode object
if nargin > 0
node.Data = Data;
end
end


function insertAfter(newNode, nodeBefore)
% Insert newNode after nodeBefore.
removeNode(newNode);
newNode.Next = nodeBefore.Next;
newNode.Prev = nodeBefore;
if ~isempty(nodeBefore.Next)
nodeBefore.Next.Prev = newNode;
end
nodeBefore.Next = newNode;
end


function insertBefore(newNode, nodeAfter)
% Insert newNode before nodeAfter.
removeNode(newNode);
newNode.Next = nodeAfter;
newNode.Prev = nodeAfter.Prev;
if ~isempty(nodeAfter.Prev)
nodeAfter.Prev.Next = newNode;
end
nodeAfter.Prev = newNode;
end


function removeNode(node)


Implementing Linked Lists with Classes
Free download pdf