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

add class queue, implement LIFO queue (Last In, First Out), must be used with Undo/redo functions

parent 5081fc31
No related branches found
No related tags found
No related merge requests found
function display(self)
%DISPLAY Display a queue table object
% display(queue)
% Copyright (c) 2004 Matthew Krauski (mkrauski@uci.edu), CNLM, UC Irvine
%isLoose = strcmp(get(0,'FormatSpacing'),'loose');
isLoose = 0;
if(length(inputname(1)) ~= 0)
if isLoose, disp(' '), end
disp( sprintf('%s =', inputname(1)) );
end
if isLoose, disp(' '), end
disp(struct(self));
%fprintf('\thashtable\n' );
% if isempty(self)
% fprintf('\tEmpty\n\n' );
% else
% % disp( sprintf('\tElements:') );
% display( self.index );
% end
function data = get(self)
%GET Get last data from the queue table
% data = get(queue)
% $Id$
data = self.data;
function bool = isempty(self)
%ISEMPTY Check to see if the queue is empty
% bool = isempty(queue)
%
bool = isempty(self.lifo);
function self = pop(self)
%PUT get data from the queue
% [queue data] = get(queue,data)
%
% $Id$
if self.index==0
self.data = [];
self.lifo = [];
return
end
self.data = self.lifo(self.index,:);
self.lifo(self.index,:) = [];
self.index = self.index-1;
function self = push(self,data)
%PUT Put data in the queue
% queue = put(queue,data)
%
% $Id$
if isempty(data)
return
end
if isequal(data, self.data)
return
end
self.index = self.index+1;
self.lifo(end+1,:) = data;
self.data = data;
function queue = queue(varargin)
%HASHTABLE Constructor for LIFO queue class
% q = queue - Default constructor, empty queue table
% mq = queue(q) - Copy constructor
% $Id$
if nargin == 1 && isa(varargin{1},'queue')
queue = varargin{1};
return;
elseif nargin == 0
q.index = 0;
q.data = [];
q.lifo = [];
else
error('queue:queue', 'Invalid arguments.');
end
queue = class(q,'queue');
function data = view(self)
%GET Get last data from the queue table
% data = get(queue)
% $Id$
self.index
self.lifo
self.data
\ No newline at end of file
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