c_pile.h: #ifndef c_pileH #define c_pileH class c_pile { public: c_pile(); ~c_pile(); void empiler(long quoi); bool depiler(long &ou); private: long *tab; long *tab2; long taillepile; }; //--------------------------------------------------------------------------- #endif c_pile.cpp: #include <windows.h> #pragma hdrstop #include "c_pile.h" c_pile::c_pile() { taillepile=0; tab=new long[taillepile]; } void c_pile::empiler(long quoi) { tab2=new long[taillepile]; for(long i=0;i<taillepile;i++) //on recopie le tableau dans un autre { tab2[i]=tab[i]; } delete tab; //on libere l espace du tableau... taillepile++; tab=new long[taillepile]; //pour en faire un d une case de plus for(long i=0;i<taillepile-1;i++) // et on recupere notre ancien tableau { tab[i]=tab2[i]; } delete tab2; tab[taillepile-1]=quoi; } bool c_pile::depiler(long &ou) { bool retour=false; if(taillepile>0) { ou=tab[taillepile-1]; tab2=new long[taillepile-1]; for(long i=0;i<taillepile-1;i++) //on recopie le tableau dans un autre { tab2[i]=tab[i]; } delete tab; //on libere l espace du tableau... taillepile--; tab=new long[taillepile]; //pour en faire un d une case de plus for(long i=0;i<taillepile;i++) // et on recupere notre ancien tableau { tab[i]=tab2[i]; } delete tab2; retour=true; } return retour; } c_pile::~c_pile() { delete tab; } //--------------------------------------------------------------------------- #pragma package(smart_init) application.cpp: #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include <iostream> using namespace std; #include "c_pile.h" int main(int argc, char* argv[]) { short choix; long temp; c_pile o_pile; do{ cout<<"1.Empiler"<<endl; cout<<"2.Depiler"<<endl; cout<<"3.Quitter"<<endl; cout<<"Choix: "; cin>>choix; if(choix==1) { cout<<"Entrez la valeur a empiler: "; cin>>temp; o_pile.empiler(temp); } if(choix==2) { if(o_pile.depiler(temp)) cout<<"Valeur depilee :"<<temp<<endl; else cout<<"La pile est vide"<<endl; } }while(choix!=3); return 0; } //---------------------------------------------------------------------------
concretement, c'est quoi une pile et ca sert a quoi?
un conteneur, comme une liste ou un tableaula stl fournit std::stack pour cadans une pile tu insert des element en faisant empilant(push), et tu recupere en depilant (pop), c'est aussi simple que ca
c est un moyen de stockage semblable à celui utilisé par un processeur: il utilise une pile (stack) pour traiter les données.
Pour faire simple une pile est un "tableau" dans lequel les elements sont accessibles un a un ; tu ne peux pas acceder a l'element 3 sans retirer tout les elements qu'il y a apres par exemple (4,5,6,...).Pour acceder a l'element 3 tu vas donc devoir retirer les elements 4,5,6,... D'ou le "empiler" et "depiler".C'est ca non ?
oui
yes c ça avec lecture destructive
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 903 485 membres 65 nouveaux aujourd'hui 16 195 membres club