Anteprima
Vedrai una selezione di 1 pagina su 2
Programma C++: tempate stack Pag. 1
1 su 2
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Programma che implementa uno Stack generico basato sul container vector.
Gli argomenti da inserire nello stack sono immessi dalla linea di comando del programma.
Consiglio per chi usa Dev-C++:
Dal menu Esegui selezionare il comando Parametri...Poi nella finestra di dialogo scrivere una frase nella casella di testo:
Parametri da passare al programma.

Nota: il programma NON fa uso del contenitore standard stack.
Estratto del documento

#include <cstdlib>

#include <iostream>

#include <vector>

using namespace std;

// Classe generica Stack basata su vector

template <typename T>

class Stack

{

public:

void Push(T); // inserisce un elemento in cima allo stack

T Pop(); // estrae l'elemento in cima allo stack

bool Empty(); // torna true se lo stack vuoto

private:

// Container vector di elementi di tipo T inizialmente vuoto

vector <T> vett;

};

int main(int argc, char *argv[])

{ // Test della classe generica Stack

Stack <char *> pila;

// Inserisce nello stack le parole presenti sulla linea di comando

for(int i = 1; i < argc; i++)

pila.Push( argv[i] ); �

/* Estrae dallo stack le parole memorizzate. L'ordine sar invertito

� �

perch lo stack una struttura LIFO (l'ultimo elemento che entra

� anche il primo che esce */

while( !pila.Empty() )

cout << pila.Pop() << " ";

cout << endl;

system("pause");

}

template <typename T>

void Stack<T>::Push(T elemento)

{

vett.push_back(elemento);

}

template <typename T>

T Stack<T>::Pop()

{

if( Empty() ) {

cerr << "ERRORE! Stack vuoto. Fine del programma." << endl;

system("pause");

exit(1);

}

else {

T top;

top = vett.back(); // legge l'elemento in cima allo stack

vett.pop_back(); // rimuove l'elemento letto

return top;

}

}

Dettagli
Publisher
2 pagine
39 download