makasin773, откуда вы этот код отрыли? Ворох синтаксических ошибок. И ещё одно, это не С, а уже С++.
| Код | #include <stdio.h>
struct Node { int d; Node* p; };
Node* first(int d); void push(Node** top, int d); int pop(Node** top);
void addEven(Node** top, int d);
int main() { Node* top = first(1);
for (int i = 2; i < 6; i++) { push(&top, i); }
addEven(&top, 100); while (top) { printf("%d ", pop(&top)); }
return 0; }
Node* first(int d) { Node* pv = new Node; pv->d = d; pv->p = NULL; return pv; }
// Занесение в стек void push(Node** top, int d) { Node* pv = new Node; pv->d = d; pv->p = *top; *top = pv; }
// Выборка из стека int pop(Node** top) { int temp = (*top)->d; Node* pv = *top; *top = (*top)->p; delete pv; return temp; }
int isEven(int a) { return (a%2 == 0); }
void addEven(Node** top, int d) { Node* pv = *top;
if (pv) { if (isEven(pv->d)) { push(top, d); } else { while (pv->p && !isEven(pv->p->d)) { pv = pv->p; } push(&(pv->p), d); } } }
|
|