Matlab - 堆栈数据结构

时间:2010-11-12 10:57:52

标签: matlab

我可以在matlab中使用堆栈数据结构吗?

例如,我可以像stack.push(i)一样推送元素的整数堆栈,像i = stack.pop()一样从中获取元素,并检查它是否为空stack.isempty()

5 个答案:

答案 0 :(得分:19)

我认为即使在较新的版本中,MATLAB也没有。但是你可以使用Java,它是MATLAB中的“一等公民”,它可以在需要时与整数完美配合。另请参阅queuelinked-list相关问题。

只需在MATLAB stack=java.util.Stack()中写一下,然后就stack.push(i)中的问题call methods on it {ecc。

答案 1 :(得分:5)

您可以自己动手,也可以使用其他人,例如this

一个非常简单的自制堆栈是一个带有计数的数组,计数指向最顶层的项目。

答案 2 :(得分:1)

我在MATLAB中使用过Java,老实说它非常慢。做@skurmedel所说的更好,就像这样:

Ptr = 1;
Stack(ptr,:) = [x,y];
Ptr = ptr + 1;

并模拟pop

A = stack(ptr,1);
B = stack(ptr,2);
Ptr = ptr - 1;

答案 3 :(得分:0)

FileExchange中有一个有用的提交:

答案 4 :(得分:0)

请按原样使用MATLAB数组。它们比使用任何Java util快100倍。编写额外的逻辑以使数组像堆栈一样工作。

根据个人经验,只需尝试重新编写算法以使用MATLAB数组即可。