Cet article partage avec vous l'algorithme d'utilisation de deux piles pour implémenter des files d'attente en js. Le contenu est très bon. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.
Utilisez deux piles pour implémenter une file d'attente et terminer les opérations Push et Pop de la file d'attente. Les éléments de la file d'attente sont de type int.
Deux piles implémentent des files d'attente, c'est-à-dire une entrée et une sortie, et la question ne mentionne pas la limite de longueur des deux piles, alors pour le deux piles s1 Pour s2, il y a deux points à noter :
Quand s1.push, si s2 n'est pas vide et s1 est vide, afin de s'assurer du bon ordre , Tous les éléments de s2 sont renvoyés à s1, puis quand s1.push
s2.pop, si s2 est vide et s1 n'est pas vide, afin d'assurer le bon ordre, les éléments de s1 seront Mettez tous les éléments dans s2, puis s2.pop
var s1 = [], s2 = []; function transferStack(a, b) { while(a.length !== 0){ b.push(a.pop()); } } function push(val) { if(s1.length === 0 && s2.length !== 0){ transferStack(s2, s1); } s1.push(val); } function pop(){ if(s1.length !== 0 && s2.length === 0){ transferStack(s1, s2); } return s2.pop(); }
Recommandations associées :
Comment utiliser la fonction $() dans jQuery
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!