我可以在matlab中使用堆栈数据结构吗?
例如,我可以像stack.push(i)
一样推送元素的整数堆栈,像i = stack.pop()
一样从中获取元素,并检查它是否为空stack.isempty()
。
答案 0 :(得分:19)
我认为即使在较新的版本中,MATLAB也没有。但是你可以使用Java,它是MATLAB中的“一等公民”,它可以在需要时与整数完美配合。另请参阅queue和linked-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数组即可。