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