From 143e5b5b3ed8ed8f8d73a7515ee8307075bfb850 Mon Sep 17 00:00:00 2001 From: Jacques Grelet <jacques.grelet@ird.fr> Date: Tue, 17 Feb 2009 08:01:26 +0000 Subject: [PATCH] add element in class stack property because stack is a value class --- @stack/element.m | 4 ++++ @stack/length.m | 16 ++++++++-------- @stack/pop.m | 6 +++--- @stack/push.m | 6 +++--- @stack/stack.m | 17 ++++++++++------- @stack/top.m | 16 ++++++++-------- 6 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 @stack/element.m diff --git a/@stack/element.m b/@stack/element.m new file mode 100644 index 0000000..9611f92 --- /dev/null +++ b/@stack/element.m @@ -0,0 +1,4 @@ +function val = element(self) + val = self.element; +end + diff --git a/@stack/length.m b/@stack/length.m index 0aa286e..df08a64 100644 --- a/@stack/length.m +++ b/@stack/length.m @@ -1,9 +1,9 @@ - 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 diff --git a/@stack/pop.m b/@stack/pop.m index 9b647c1..2b50460 100644 --- a/@stack/pop.m +++ b/@stack/pop.m @@ -1,4 +1,4 @@ -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 diff --git a/@stack/push.m b/@stack/push.m index 7177032..883fd06 100644 --- a/@stack/push.m +++ b/@stack/push.m @@ -1,4 +1,4 @@ - 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 diff --git a/@stack/stack.m b/@stack/stack.m index 0c46a33..76e0118 100644 --- a/@stack/stack.m +++ b/@stack/stack.m @@ -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 diff --git a/@stack/top.m b/@stack/top.m index 3927b5b..09ffb28 100644 --- a/@stack/top.m +++ b/@stack/top.m @@ -1,17 +1,17 @@ - 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 -- GitLab