Skip to content
Snippets Groups Projects
Commit 143e5b5b authored by jacques.grelet_ird.fr's avatar jacques.grelet_ird.fr
Browse files

add element in class stack property because stack is a value class

parent 2d3f90e1
No related branches found
No related tags found
No related merge requests found
function val = element(self)
val = self.element;
end
function length = length(self)
length = 0;
node = self.stack_pointer;
while ~isempty(node)
length = length + 1;
node = next(node);
end
end
function length = length(self)
length = 0;
node = self.stack_pointer;
while ~isempty(node)
length = length + 1;
node = next(node);
end
end
function element = pop(self)
function self = pop(self)
%increase the stack pointer and return 'top' node data
% usage :
% element = pop(stack)
......@@ -6,9 +6,9 @@ function element = pop(self)
% $Id$
if isempty(self.stack_pointer)
element = {};
self.element = {};
else
element = data(self.stack_pointer);
self.element = data(self.stack_pointer);
self.stack_pointer = next(self.stack_pointer);
end
function self = push(self, element)
self.stack_pointer = node(element, self.stack_pointer);
end
function self = push(self, element)
self.stack_pointer = node(element, self.stack_pointer);
end
......@@ -4,22 +4,25 @@ function s = stack
% Last In First Out (LIFO)
%
% usage:
% q = stack - Default constructor, empty stack table
% s = stack - Default constructor, empty stack table
%
% example:
% q = stack
% q = push(q, [1:2])
% q = push(q, ones(1,5))
% element = pop(q)
% q = push(q, zeros(1,3))
% s = stack
% s = push(q, [1:2])
% s = push(q, ones(1,5))
% s = pop(s)
% e = element(s)
% s = push(s, zeros(1,3))
% e = top(s)
% etc ...
%
% $Id$
% copy constructor
% constructor
% ----------------
if nargin == 0
self.stack_pointer = {};
self.element = {};
else
error('stack:stack', 'Invalid arguments.');
end
......
function element = top(self)
function element = top(self)
%return 'top' node
% usage
% data = top(stack)
% $Id: get.m 416 2009-02-13 07:55:41Z jgrelet $
% return object prepared in data
% return object prepared in data
% ------------------------------
if isempty(self.stack_pointer)
element = {};
else
element = data(self.stack_pointer);
end
end
if isempty(self.stack_pointer)
element = {};
else
element = data(self.stack_pointer);
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment