Est-il un “file d'attente” dans MATLAB?

Je veux convertir une fonction récursive pour une itératif un. Ce que j'ai l'habitude de faire, c'est que j'initialise une file d'attente, mettre la première travail dans la file d'attente. Puis dans une boucle while, je consomme des travaux à partir de la file d'attente et en ajouter de nouveaux à la file d'attente. Si mon récursive de la fonction s'appelle elle-même à plusieurs reprises (e.g pied d'un arbre à plusieurs branches), plusieurs emplois sont ajoutés. Le Pseudo-code:

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;

Je ne trouve aucune file d'attente comme la structure dans MATLAB bien. Je peux utiliser de vecteur pour simuler la file d'attente où l'ajout de 3 à file d'attente, c'est comme:

a = [a 3]

et la suppression de l'élément est

val = a(1);
a(1) = [];

Si j'ai eu l'MATLAB chemin à droite, cette méthode sera un rendement tueur.

Est-il un danger à utiliser une file d'attente dans MATLAB?

Quels sont les autres structures de données?

  • Pourquoi ne pas rester avec une fonction récursive?
  • J'ai l'habitude de atteindre le maximum de la profondeur de récursivité. Quand je l'augmentation de la profondeur max MATLAB se bloque.
InformationsquelleAutor nimcap | 2010-11-10