文件名称:stack:将堆栈对象作为动态数组进行操作-matlab开发
文件大小:3KB
文件格式:ZIP
更新时间:2024-06-21 09:58:12
matlab
这里实现的栈对象是动态数组问题的部分解决方案。 众所周知,将元素附加到 matlab 数组是低效的(将元素附加到 nx1 向量需要至少 n 次赋值),例如 tic;v=[];for i=1:1e5,v=[v,i];end;toc; % O(n^2),大约 30 秒tic;v=zeros(1e5,1); 对于 i=1:numel(v),v(i)=i;end;toc; % O(n),大约 0.004 秒 在某些应用程序中,我们不知道数组的最终长度。 一种解决方案是使用堆栈对象。 堆栈是一个链表,其中包含顶部项目和指向下方堆栈顶部的指针。 这里它被实现为一个嵌套的元胞数组:s = {}(空栈)或 s = {x,s1} 其中 s1 是一个栈。 抽动; s={}; 对于 i=1:1e5 s=push(i,s); 结尾; w=stack2mat(s,1e5); isequal(v,w) % 返
【文件预览】:
stack.zip