-
Notifications
You must be signed in to change notification settings - Fork 1
/
PriorityQueue.m
49 lines (42 loc) · 1.83 KB
/
PriorityQueue.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
% File : run_me.m
% Author : Pradeep Rajendran <[email protected]>
% Date : 06.10.2018
% Last Modified Date: 29.01.2019
% Last Modified By : Pradeep Rajendran <[email protected]>
classdef PriorityQueue < handle
properties (Constant)
NEW_CMD_ID = 0;
DELETE_CMD_ID = 1;
PUSH_CMD_ID = 2;
POP_CMD_ID = 3;
TOP_CMD_ID = 4;
SIZE_CMD_ID = 5;
TOP_VALUE_CMD_ID = 6;
end
properties (SetAccess = private, Hidden = true)
objectHandle; % Handle to the underlying C++ class instance
end
methods
function this = PriorityQueue(varargin)
this.objectHandle = priority_queue_interface_mex(PriorityQueue.NEW_CMD_ID, varargin{:});
end
function delete(this)
priority_queue_interface_mex(PriorityQueue.DELETE_CMD_ID, this.objectHandle);
end
function varargout = push(this, varargin)
[varargout{1:nargout}] = priority_queue_interface_mex(PriorityQueue.PUSH_CMD_ID, this.objectHandle, varargin{:});
end
function varargout = pop(this, varargin)
[varargout{1:nargout}] = priority_queue_interface_mex(PriorityQueue.POP_CMD_ID, this.objectHandle, varargin{:});
end
function varargout = top(this, varargin)
[varargout{1:nargout}] = priority_queue_interface_mex(PriorityQueue.TOP_CMD_ID, this.objectHandle, varargin{:});
end
function varargout = size(this, varargin)
[varargout{1:nargout}] = priority_queue_interface_mex(PriorityQueue.SIZE_CMD_ID, this.objectHandle, varargin{:});
end
function varargout = top_value(this, varargin)
[varargout{1:nargout}] = priority_queue_interface_mex(PriorityQueue.TOP_VALUE_CMD_ID, this.objectHandle, varargin{:});
end
end
end