tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
10
Task/Queue-Definition/MATLAB/queue-definition-1.m
Normal file
10
Task/Queue-Definition/MATLAB/queue-definition-1.m
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
myfifo = {};
|
||||
|
||||
% push
|
||||
myfifo{end+1} = x;
|
||||
|
||||
% pop
|
||||
x = myfifo{1}; myfifo{1} = [];
|
||||
|
||||
% empty
|
||||
isempty(myfifo)
|
||||
82
Task/Queue-Definition/MATLAB/queue-definition-2.m
Normal file
82
Task/Queue-Definition/MATLAB/queue-definition-2.m
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
%This class impliments a standard FIFO queue.
|
||||
classdef FIFOQueue
|
||||
|
||||
properties
|
||||
queue
|
||||
end
|
||||
|
||||
methods
|
||||
|
||||
%Class constructor
|
||||
function theQueue = FIFOQueue(varargin)
|
||||
|
||||
if isempty(varargin) %No input arguments
|
||||
|
||||
%Initialize the queue state as empty
|
||||
theQueue.queue = {};
|
||||
elseif (numel(varargin) > 1) %More than 1 input arg
|
||||
|
||||
%Make the queue the list of input args
|
||||
theQueue.queue = varargin;
|
||||
elseif iscell(varargin{:}) %If the only input is a cell array
|
||||
|
||||
%Make the contents of the cell array the elements in the queue
|
||||
theQueue.queue = varargin{:};
|
||||
else %There is one input argument that is not a cell
|
||||
|
||||
%Make that one arg the only element in the queue
|
||||
theQueue.queue = varargin;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
%push() - pushes a new element to the end of the queue
|
||||
function push(theQueue,varargin)
|
||||
|
||||
if isempty(varargin)
|
||||
theQueue.queue(end+1) = {[]};
|
||||
elseif (numel(varargin) > 1) %More than 1 input arg
|
||||
|
||||
%Make the queue the list of input args
|
||||
theQueue.queue( end+1:end+numel(varargin) ) = varargin;
|
||||
elseif iscell(varargin{:}) %If the only input is a cell array
|
||||
|
||||
%Make the contents of the cell array the elements in the queue
|
||||
theQueue.queue( end+1:end+numel(varargin{:}) ) = varargin{:};
|
||||
else %There is one input argument that is not a cell
|
||||
|
||||
%Make that one arg the only element in the queue
|
||||
theQueue.queue{end+1} = varargin{:};
|
||||
end
|
||||
|
||||
%Makes changes to the queue permanent
|
||||
assignin('caller',inputname(1),theQueue);
|
||||
|
||||
end
|
||||
|
||||
%pop() - pops the first element off the queue
|
||||
function element = pop(theQueue)
|
||||
|
||||
if empty(theQueue)
|
||||
error 'The queue is empty'
|
||||
else
|
||||
%Returns the first element in the queue
|
||||
element = theQueue.queue{1};
|
||||
|
||||
%Removes the first element from the queue
|
||||
theQueue.queue(1) = [];
|
||||
|
||||
%Makes changes to the queue permanent
|
||||
assignin('caller',inputname(1),theQueue);
|
||||
end
|
||||
end
|
||||
|
||||
%empty() - Returns true if the queue is empty
|
||||
function trueFalse = empty(theQueue)
|
||||
|
||||
trueFalse = isempty(theQueue.queue);
|
||||
|
||||
end
|
||||
|
||||
end %methods
|
||||
end
|
||||
22
Task/Queue-Definition/MATLAB/queue-definition-3.m
Normal file
22
Task/Queue-Definition/MATLAB/queue-definition-3.m
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
>> myQueue = FIFOQueue({'hello'})
|
||||
|
||||
myQueue =
|
||||
|
||||
FIFOQueue
|
||||
|
||||
>> push(myQueue,'jello')
|
||||
>> pop(myQueue)
|
||||
|
||||
ans =
|
||||
|
||||
hello
|
||||
|
||||
>> pop(myQueue)
|
||||
|
||||
ans =
|
||||
|
||||
jello
|
||||
|
||||
>> pop(myQueue)
|
||||
??? Error using ==> FIFOQueue.FIFOQueue>FIFOQueue.pop at 61
|
||||
The queue is empty
|
||||
Loading…
Add table
Add a link
Reference in a new issue