//: C04:Stack.h
// Nested struct in linked list
#ifndef STACK_H
#define STACK_H/* Controllo per non includere pių di una volta la stessa libreria. Abbiamo member function con struct di struct. Facciamo notare che abbiamo due member function con lo stesso nome ma, imprtante, č che sono in due ambiti diversi(cambia la sintassi nella definizione) */
struct Stack {
/* Si possono usare le classi al posto delle strutture in modo analogo (vedi slide proiettate a lezione)*/
struct Link {
void* data;/* Il tipo void* indica che la variabile definita prende come valori puntatori generici (qualunque) */
Link* next;
void initialize(void* dat, Link* nxt);}* head;
void initialize();
void push(void* dat);
void* peek();
void* pop();
void cleanup();};
#endif // STACK_H ///:~