Я хочу преобразовать рекурсивную функцию в итеративную.Обычно я инициализирую очередь, помещаю первое задание в очередь.Затем в цикле 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?
А как насчет других структур данных?