synoptique de fonctionnement de la pile à l'aide de javascript
Comment puis-je obtenir le premier élément de ma pile
voici mon code
var stack = [];
stack.push(id1);
stack.push(id2);
Je sais qu'il existe quelque chose comme coup d'oeil en java. Est-il une méthode similaire en JS à l'aide de laquelle je peux obtenir l'élément supérieur?
- Je ne pense pas. Bien que vous pouvez définir vous-même à l'aide de
Array.prototype.peek = fn(){..}
ou utiliser les fonction qui nereturn arr[arr.length - 1]
- Ỳou veux dire à l'aide de
stack[0]
? - n'est-ce pas
arr[arr.length -1]
mieux que de le faire 2 fonctionnement (pop et push) - ne serait-ce pas donner le dernier élément?
- Si à l'aide de la tranche est d'accord? quel est le problème avec
unshift()
- N'est-ce pas
peek
n'? - Je ne suis pas sûr de
peek
mais la question se lit premier élément donc je lui ai demandé. 🙂 - Dans la pile, le premier élément est le dernier 1 vous avez poussé. Envisager une pile de livres. Qui est le premier livre sur le dessus. Aussi votre proposition est correcte sur
unshift
. Également surpeek
, que feriez-vous pour lire le nom de livre sur le dessus? Vous le lire sans le déplacer. - Merci, je comprends maintenant. mais alors comment est -
unshift()
d'accord ne devrait-elle pas êtrepop()
? mais je pense que l'OP veut juste lire et de ne pas modifier son tapis. doncarr[arr.length - 1]
est mieux adapté. - Mon mauvais. Utilisé un mauvais exemple pour la vérifier et embrouillés. Aussi
pop
n'est pas idéal, car il permettra de supprimer le dernier élément et de vous le renvoyer. - Incapable de comprendre pourquoi ne pas utiliser
stack[0]
?
Vous devez vous connecter pour publier un commentaire.
Pour vérifier l'élément supérieur, malheureusement, vous devez explicitement index il
la syntaxe
stack[-1]
(qui serait à l'œuvre en Python) ne fonctionne pas: des index négatifs sont valables uniquement en tant que paramètres àslice
appel.À extrait un élément, il est cependant
pop
:.getLast()
, mais évidemment ce n'est que sur Chrome.stack[0]
?push
etpop
travail sur le dernier élément du tableau. À l'aide desplice
d'insérer et de supprimer les éléments de début serait de faire les deux opérationsO(n)
au lieu deO(1)
(ce n'est pas strictement nécessaire, comme on pourrait concevoir un anneau de la mémoire tampon en fonction de la matrice de soutien amortiO(1)
d'insertion aux deux extrémités et avecO(1)
de suppression aux deux extrémités et à l'indexation, mais ce n'est pas ce commun des implémentations ne).stack[0]
restera même droit?stack.splice(0, 1)
. Ce dernier est toutefois dans la plupart des implémentations encore une boucle faite par le runtime Javascript, et donc de supprimer le premier élément nécessiteO(n)
temps.JS:
Si vous avez juste besoin d'un bord de la pile (la tête ou la queue n'est pas question de l'utiliser inversée, puis:
peek()
devenirarray[0]
,unshift(v)
devenirpush()
shift()
devenirpop()
code:
JS:
ou plus courte
JS:
JS: