// stack.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include #include using namespace std; struct chain { int num; chain *next; }; chain * push(chain*, int); chain * pop(chain*); void Process(chain*); void printstack(chain*); int _tmain(int argc, _TCHAR* argv[]) { int quentity, number; chain* top = NULL; cout << "Enter the number of stacks: "; cin >> quentity; for (int i = 0; i < quentity; i++) { cout << "[" << i + 1 << "]: "; cin >> number; top = push(top, number); } cout << "The stack before processing: "; printstack(top); Process(top); _getch(); return 0; } chain * push(chain* top, int what) { chain * pv = new chain; pv->num = what; pv->next = top; return pv; } chain * pop(chain * top) { chain * pv = top->next; delete top; return pv; } void printstack(chain* top) { while (top) { cout << top->num << " "; top = top->next; } cout << endl; } void Process(chain* top) { chain *pol = NULL; chain *otr = NULL; while (top) { if (top->num >= 0) pol = push(pol, top->num); else otr = push(otr, top->num); top = top->next; } cout << "Pol: "; printstack(pol); cout << endl; cout << "Otr: "; printstack(otr); }