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;
}
Offline