Bonjour à tous,
je souhaite implémenter une structure de donnée de type PILE LIFO en javascript...
J'ai cherché sur le web ce qui avait été déjà fait:
on peut utiliser un tableau et simplement appeler les méthodes push() pour empiler et pop() pour dépiler...mais la méthode pop() ne fontionne pas sous IE
exemple:
Code : Tout sélectionner
var pile=new Array();
taille = pile.push("un");
document.write(taille);//affiche 1 ok sous FF et IE
taille = pile.push("deux");
document.write(taille);//affiche 2 ok sous FF et IE
taille = pile.push("trois");
document.write(taille);//affiche 3 ok sous FF et IE
//la suite ne fonctionne pas sous IE seulement à cause de la fonction pop()
item = pile.pop();
document.write(item);
document.write(pile.length);
item = pile.pop();
document.write(item);
document.write(pile.length);
item = pile.pop();
document.write(item);
document.write(pile.length);
Code : Tout sélectionner
var pile=NULL;
//pour créer un item de ma pile
function Item(precedent, suivant, valeur) {
this.precedent=precedent;
this.suivant=suivant;
this.valeur=valeur;
}
function empiler (newvalue) {
var nouveau=new Item (null, null, newvalue);//mettre VAR NOUVEAU
if (pile == null)
pile = nouveau;
else {
var item=pile;//mettre VAR ITEM
while (item.suivant != null)
item=item.suivant;
item.suivant=nouveau;
nouveau.precedent=item;
}
}
function affiche (){
var item=pile;//mettre VAR ITEM
do {
document.write("valeur="+item.value);
item=item.suivant;
}
while (item != null);
}
document.write('debut');
empiler("1");
empiler("2");
empiler("3");
affiche();
document.write('fin');
Pourriez-vous m'aider?