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) function length = length(self)
length = 0; length = 0;
node = self.stack_pointer; node = self.stack_pointer;
while ~isempty(node) while ~isempty(node)
length = length + 1; length = length + 1;
node = next(node); node = next(node);
end end
end end
function element = pop(self) function self = pop(self)
%increase the stack pointer and return 'top' node data %increase the stack pointer and return 'top' node data
% usage : % usage :
% element = pop(stack) % element = pop(stack)
...@@ -6,9 +6,9 @@ function element = pop(self) ...@@ -6,9 +6,9 @@ function element = pop(self)
% $Id$ % $Id$
if isempty(self.stack_pointer) if isempty(self.stack_pointer)
element = {}; self.element = {};
else else
element = data(self.stack_pointer); self.element = data(self.stack_pointer);
self.stack_pointer = next(self.stack_pointer); self.stack_pointer = next(self.stack_pointer);
end end
function self = push(self, element) function self = push(self, element)
self.stack_pointer = node(element, self.stack_pointer); self.stack_pointer = node(element, self.stack_pointer);
end end
...@@ -4,22 +4,25 @@ function s = stack ...@@ -4,22 +4,25 @@ function s = stack
% Last In First Out (LIFO) % Last In First Out (LIFO)
% %
% usage: % usage:
% q = stack - Default constructor, empty stack table % s = stack - Default constructor, empty stack table
% %
% example: % example:
% q = stack % s = stack
% q = push(q, [1:2]) % s = push(q, [1:2])
% q = push(q, ones(1,5)) % s = push(q, ones(1,5))
% element = pop(q) % s = pop(s)
% q = push(q, zeros(1,3)) % e = element(s)
% s = push(s, zeros(1,3))
% e = top(s)
% etc ... % etc ...
% %
% $Id$ % $Id$
% copy constructor % constructor
% ---------------- % ----------------
if nargin == 0 if nargin == 0
self.stack_pointer = {}; self.stack_pointer = {};
self.element = {};
else else
error('stack:stack', 'Invalid arguments.'); error('stack:stack', 'Invalid arguments.');
end end
......
function element = top(self) function element = top(self)
%return 'top' node %return 'top' node
% usage % usage
% data = top(stack) % data = top(stack)
% $Id: get.m 416 2009-02-13 07:55:41Z jgrelet $ % $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) if isempty(self.stack_pointer)
element = {}; element = {};
else else
element = data(self.stack_pointer); element = data(self.stack_pointer);
end end
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