stack.m

来自「这是本人收集的一些程序源代码」· M 代码 · 共 22 行

M
22
字号
function ST=stack(v)
% 调用格式
%		ST=stack 		创建一个"空"堆栈对象.
%  		ST=stack(v) 	创建包含变量v的堆栈对象。
if nargin>1;error('Too many arguments.');end;
if nargin==0							% 没有输入宗量情况
   Q=queue;
   s.value=[];						% value 域被赋"空阵"
   s.name='';							% name 域不给任何字符
elseif isa(v,'stack');				% 输入宗量是同类对象情况
   s=v;								% 直接把输入量赋给 q
   Q=queue(evalin('caller',inputname(1)));%生成队列对象
else									% 非同类输入宗量情况
   s.value=v;							% 在 value 域中放置输入对象 v 的内容
   s.name=inputname(1);				% 在 name 域中放置输入对象名 v 字符
   if isempty(s.name)				% 假如输入量无名
      s.name=['(' class(v) ')'];	% 就采用 v 本身的类名
   end
   Q=queue(evalin('caller',inputname(1)));%生成队列对象
end
ST=class(s,'stack',Q);				% 产生继承父类对象Q性质的ST堆栈子类

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?