pop et peek faire de même dans ce cas?
À partir de toutes les sources que j'ai lu, ils disent - la différence entre l'œil et de la pop est que l'œil n'a pas d'enlever le haut de la valeur.
Dans l'exemple fourni à partir de mes notes de cours, apparemment ils font la même chose en utilisant une autre méthode de soustraction. Après les deux opérations de haut a soustrait 1.
Suis-je droit?
Probablement pas, quelqu'un peut-il expliquer comment ces différents?
int pop(void)
{
assert(top>0);
return data[--top];
}
int peek(void)
{
assert(top>0);
return data[top-1];
}
OriginalL'auteur Peter Cerba | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
top
est une variable d'état de la pile, qui est stocké dans un tableau normal. La variabletop
références haut de la pile par le stockage d'un index de tableau.De la première opération,
pop
, utilise l'opérateur de décrémentation pour changement la variabletop
, et donc l'état de la pile:--top
est équivalent àtop = top - 1
. La valeur est toujours dans le tableau, mais puisque la variabletop
fait maintenant référence à un indice différent, cette valeur est effectivement retiré: le haut de la pile est maintenant un élément différent. Maintenant, si vous appelez unpush
, ce sauté de valeur sera écrasée.La deuxième opération n'est pas modifier la valeur de la variable
top
, il l'utilise seulement pour renvoyer la valeur au sommet de la pile. La variabletop
fait toujours référence à la même valeur que la pile haut, et si la pile est inchangé.OriginalL'auteur pb2q
Ils vont retourner la même valeur, mais seulement de la pop changements haut:
c'est l'équivalent de
où en tant que haut - 1 ne change pas la valeur de haut.
OriginalL'auteur Borgleader
Ce
change la valeur de
top
tout cene change pas. Ainsi, lorsque vous appelez
pop
le pointeur vers le haut de la pile est modifié pour pointer vers une nouvelle rubrique, tandis quepeek
laisse le pointeur inchangée, de sorte que les fonctions se comportent dans le bon sens que vous décrivezOriginalL'auteur mathematician1975
Dans
pop
faire--top
qui esttop=top-1
de sorte qu'il modifie la valeur detop
.Tandis que dans
peek
, fairetop-1
c'est à dire juste décrémentetop
par 1 et l'utilisation de la valeur,top
est inchangé.OriginalL'auteur Rohan
Dans la programmation en général, le terme "pop" signifie que la méthode de retour d'un objet à partir d'une pile, alors que dans le même temps, la suppression de la pile. Le terme "coup d'oeil" est plus générique et peut être utilisé sur d'autres conteneurs de données/ADTs que des piles. "Coup d'oeil" signifie toujours "donnez-moi le point suivant, mais ne pas les retirer du récipient".
Le plus souvent "coup d'oeil" est utilisée conjointement avec la file d'attente, comme des conteneurs de données, par exemple la fonction Windows API pour vérifier le message suivant dans le message de windows file d'attente est nommé PeekMessage().
OriginalL'auteur Lundin
Fonction de menu de l'extraction de l'élément de plus haut niveau et passer à la suivante avant.si le pointeur se déplace vers l'élément suivant.top position de l'élément est maintenant en baisse de 1.
Fonction de peek - Il seulement de retour, l'élément supérieur, mais le pointeur est toujours là. de sorte que le haut de l'élément de position reste inchangée.
OriginalL'auteur Sidharth K.Burnwal
fait de la pop et de pointe sont les mêmes mais le truc, c'est l'ancien vu les données et fermé la boîte, mais le plus tard le premier a pris les données ont vu, et fermé la boîte
OriginalL'auteur faizy