PILE LIFO

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PILE LIFO

PILE LIFO

par starkeus » 16 déc. 2005, 11:35

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: