#include #include using namespace std; struct node { string vardas; string pavarde; node * prev; node * next; }; int push(node **p, string vardas, string pavarde) { node * newp = new node; newp->vardas = vardas; newp->pavarde = pavarde; if (*p == NULL) { newp->next = NULL; newp->prev = NULL; *p = newp; return 0; } newp->prev = *p; newp->next = NULL; if (*p) (*p)->next = newp; *p = newp; return 0; } vector pop(node **p, vector & t ) { if (*p != NULL) { node *tmp = *p; t.push_back(tmp->vardas); t.push_back(tmp->pavarde); *p = (*p)->next; if (*p) (*p)->next = NULL; free(tmp); return t; } else return t; } int print(node *p) { while (p) { cout << p->vardas << " " << p->pavarde << endl; p = p->prev; } } int main() { node * main = NULL; vector t; push(&main, "kestas", "heh"); push(&main, "rimas", "heh"); t = pop(&main, t); t = pop(&main, t); print(main); }