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;

}

}

Anteprima
Vedrai una selezione di 1 pagina su 2
Programma C++: tempate stack Pag. 1
1 su 2
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.
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi