Zaimplementuj kolejke za pomoca dwóch stosów.
#include <iostream> #include <cstdlib>
using namespace std;
struct elem { int dane; elem *nast; };
void push(elem *&stos, int x) { elem* e = new elem; e->dane = x; e->nast = stos; stos = e; }
int pop(elem *&stos) { int w = stos->dane; elem* d = stos; stos = stos->nast; delete d; return w; }
int topEl(elem* stos) { return stos->dane; }
int count(elem* stos) { int iloscEl = 0; while (stos != NULL) { iloscEl++; stos = stos->nast; } return iloscEl; }
bool isEmpty(elem* stos) { bool w = true; if (count(stos) > 0) { w = false; } return w; }
void usun(elem* &stos) { while (stos != NULL) { pop(stos); } }
void addK(elem *&pocz_kolejki, elem *&kon_kolejki, int x) { push(kon_kolejki, x); if (isEmpty(pocz_kolejki)) { while (!isEmpty(kon_kolejki)) { push(pocz_kolejki, pop(kon_kolejki)); } } }
int nextK(elem *&pocz_kolejki, elem *&kon_kolejki) { if (isEmpty(pocz_kolejki)) { while (!isEmpty(kon_kolejki)) { push(pocz_kolejki, pop(kon_kolejki)); } } return pop(pocz_kolejki); }
int firstElK(elem* pocz_kolejki) { return pocz_kolejki->dane; }
bool isEmptyK(elem *pocz_kolejki) { return isEmpty(pocz_kolejki); }
void usunK(elem *&pocz_kolejki, elem *&kon_kolejki) { usun(pocz_kolejki); usun(kon_kolejki); }
int main() { elem* p = NULL; elem* k = NULL; system("Pause"); return 0; }
|