Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我想将递归函数转换为迭代函数。我通常要做的是,初始化一个队列,将第一个作业放入队列。然后在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中有使用队列的明智方法吗? 那么其他数据结构呢? 回答: 如果您坚持使用正确的数据结构,则可以在MATLAB内部使用Java: import java.util.LinkedList q = LinkedList(); q.add('item1'); q.add(2); q.add([3 3 3]); item = q.remove(); q.add('item4'); 更多&回答... |
![]() |
![]() |