2009-02-08 8 views
1

Je lis Le langage de programmation C et j'ai appris comment faire une calculatrice polonaise inverse en utilisant une pile. Voici l'un des exercices qui suivent:Que signifie dupliquer une pile?

Exercice 4-4. Ajoutez les commandes pour imprimer les éléments supérieurs de la pile sans les faire éclater, pour les dupliquer et pour échanger les deux éléments suivants: . Ajoutez une commande pour effacer la pile.

Qu'entendent-ils par "dupliquer"? Est-ce que cela signifie d'imprimer toute la pile, ou de pousser toute la pile sur elle-même (de sorte que, par exemple, "1 2 3" deviendrait "1 2 3 1 2 3"), ou quoi?

Répondre

5

Non, ne dupliquez pas la pile, dupliquez l'entrée "top".

Donc, si votre pile est:

[1,2,3,4,5], 

vous obtenez:

[1,2,3,4,5,5]. 

Le sujet "il", dans ce cas, fait référence à "l'élément supérieur de la pile", et non " la pile".

Je cueille "éléments" était une faute de frappe.

1

L'entrée Stack-oriented programming language dans Wikipedia contient une description des opérations de manipulation de la pile:

manipulation de la pile

Depuis la pile est le principal moyen de manipulation de données dans un langage de programmation orienté pile, souvent ces langues fournir une sorte d'opérateurs de manipulation de pile. Communément fourni dup, pour dupliquer l'élément en haut de la pile, exch (ou swap), pour échanger des éléments en haut de la pile (le premier devient le second et le second devient le premier), roll, to permuter cycliquement des éléments dans la pile ou sur une partie de la pile, pop (ou drop), pour rejeter l'élément en haut de la pile (push est implicite), et autres. Ceux-ci deviennent la clé dans l'étude des procédures.