我想把一个递归函数转换成迭代函数。 我通常的做法是初始化一个队列,将第一个任务放入队列中。然后在while循环中,我从队列中获取任务并将新任务添加到队列中。如果我的递归函数多次调用自身(例如遍历具有许多分支的树),则会添加多个任务。 伪代码:
queue = new Queue();
queue.put(param);
result = 0;
while (!queue.isEmpty()) {
param = queue.remove();
// process param and obtain new param(s)
// change result
queue.add(param1);
queue.add(param2);
}
return result;
虽然在MATLAB中找不到任何类似队列的结构,但我可以使用向量来模拟队列,其中将3添加到队列的方式如下:
a = [a 3]
删除元素是
val = a(1);
a(1) = [];
如果我理解 MATLAB 的方式正确的话,这种方法将成为性能杀手。
在 MATLAB 中是否有一种合理的方法来使用队列?
其他数据结构呢?