Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [c++] PILA

  1. #1

    [c++] PILA

    ho scritto questa pila con le principali istruzione ma dov'è che sbaglio ? visto che quando vado provarla mi funziona solo una volta se tutto va bene!! e la funzione stampa come si fa?
    grazie per il vostro aiuto! ve ne sarò riconoscente a vita!!!



    codice:
    #include <cstdlib>
    #include <iostream>
    #include "pila.h"
    using namespace std;
    void menu();
    
    int main(int argc, char *argv[])
    {
    pila a;
    int scelta;
    int t;
    int e; //elemento da inserire
    
    do {
    menu();
    cout<<"inserisci scelta"<<endl;
    cin>>scelta;
    switch(scelta) {
    case 1: cout<<"inserisci elemento"<<endl; cin>>e; a.push(e); break;
    case 2: cout<<"gli elementi della pila sono"<<endl; a.stampa(e); break;
    case 3: cout<<"l'elemento in testa e': "<<endl; a.pop(e); break;
    case 4: cout<<"copia elemento in testa alla pila"<<endl; a.top(e); break;
    default : break;
    }
    } while(scelta <6);
    
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    void menu() {
    cout<<"*****************************************************************************"<<endl;
    cout<<"******************************************************************************"<<endl;
    cout<<"1)inserisci elemento"<<endl;
    cout<<"2)stampa pila"<<endl;
    cout<<"3 prelevare elemento in testa alla pila"<<endl;
    cout<<"4) copia elemento in testa alla pila"<<endl; 
    cout<<"*****************************************************************************"<<endl;
    cout<<"******************************************************************************"<<endl;
    }
    
    
    
    #ifndef _pila_h_
    #define _pila_h_
    
    typedef int E;
    class pila {
    public:
    pila(); //costruttore
    
    void push (const E e);
    void stampa(E & e);
    void pop (E & e);
    void top (E & e) const; 
    bool empty () const ;
    bool full() const;
    private :
    enum{N=100}; //massimlo numero di elementi nella pila 
    E p[N]; //p array di N elementi di tipo E
    int t; //t puntatore alla testa dell'array
    
    };
    
    
    
    
    
    #endif
    
    
    #include <cstdlib>
    #include <iostream>
    #include "pila.h"
    using namespace std;
    
    //prototipo
    
    pila :: pila() { (t=0);}
    // assegna a empty true se la pila e' vuota
    bool pila::empty() const {
    return (t==0); }
    //assegna a full true se la pila è piena 
    bool pila :: full () const {
    return (t==N); }
    
    //inserisci elemento
    void pila:: push(const E e) {
    p[t]=e;
    t++;
    }
    //stampa pila
    void pila:: stampa(E & e){
    while(t!=0){
    e=p[t-1];
    t--;
    cout<<" "<<e<<endl;} }
    //preleva elemento in testa
    void pila:: pop (E & e){
    t--; e=p[t];
    cout<<" "<<e<<endl;
    }
    // copia elemento in testa alla pila
    void pila :: top (E & e) const {
    e=p[t-1];
    cout<<" "<<e<<endl;
    }

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Perchè aprire una nuova discussione identica a quella (ancora aperta) di ieri ?

    http://forum.html.it/forum/showthrea...readid=1355046

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da comas17
    Perchè aprire una nuova discussione identica a quella (ancora aperta) di ieri ?
    Quoto, sottoscrivo e chiudo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.