summaryrefslogtreecommitdiff
path: root/structures/stack.h
blob: 171f8ae1e1e8dbae787fa7dd4959c4880a98de90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

struct stack
{
    int inf;
    stack *next;
};

void push(stack *&h, int x)
{
    stack *r = new stack;
    r->inf = x;
    r->next = h;
    h = r;
}

int pop(stack *&h)
{
    int i = h->inf;
    stack *r = h;
    h = h->next;
    delete r;
    return i;
}

void reverse(stack *&h)
{
    stack *head1 = NULL;
    while (h)
        push(head1, pop(h));
    h = head1;
}