from
queue and stack classes
by Hanan Kavitz
Implementation of doubly linked list, stack and queue
|
| Queue<handle
|
classdef Queue<handle
%% Queue Class
%
% properties:
%
% link- doubly lined list for storing data
%
% methods:
%
% Queue- constructor for Queue class
%
% enqueue(queue,x)- method for inserting new element x into the
% queue. x may be of any data type.
%
% x=dequeue(queue)- method for getting the next element x in the
% queue
%
% isempty- returns true if the queue is empty and false otherwise
%
% exemple:
%
% queue=Queue;
%
% queue.enqueue('12');
%
% n=queue.dequeue;
properties(Access=private)
link
end
methods
function queue=Queue
queue.link=DoublyLinkedList([]);
end
function enqueue(queue,x)
if isa(x,'Node')
insert(queue.link,x);
else
insert(queue.link,Node(x));
end
if isempty(queue.link.tail)
queue.link.tail=queue.link.head;
end
end
function x=dequeue(queue)
if ~isempty(queue.link.tail)
x=queue.link.tail;
delete(queue.link,queue.link.tail);
else
error('The queue is empty');
end
end
% check whether this queue is empty
function tf=isempty(queue)
tf=isempty(queue.link.tail);
end
% get/set functions
function set.link(queue,link)
queue.link=link;
end
function link=get.link(queue)
link=queue.link;
end
end
end
|
|
Contact us