Page 1 sur 1

PILE LIFO

Posté : 16 déc. 2005, 11:35
par starkeus
Edit: arf...j'ai oublié d'initialiser certaines variables maintenant ca marche sous IE aussi. :evil:

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);
alors je me suis mis dans l'idée de recréer ma pile en javascript mais j'ai quelques difficultés (ça fait un bail que je n'en ai pas fait) voici un début:

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');
sous FF ca marche, sous IE je n'ai que l'instruction document.write('debut') qui est éxécutée...tout cela bien évidemment sans aucune erreur JS générée...

Pourriez-vous m'aider?
:roll: :evil: