链栈

类似于头插法的链表

 

 

#include <iostream>

using namespace std;

struct Link {
    int elem;
    struct Link* next;
};

Link* push(Link* head, int val) {
    Link* list = new Link();
    list->elem = val;
    list->next = NULL;

    list->next = head;
    head = list;

    return head;
}

Link* pop(Link* head) {
    if (head) {
        if (head->next != NULL) {
            cout << head->elem << "弹出" << endl;
            head = head->next;
            return head;
        }
        else {
            cout << "空栈" << endl;
            return head;
        }
        
    }
    else {
        cout << "栈内无元素!" << endl;
        return head;
    }
}

int main()
{
    Link* stack = new Link();
    stack->next = NULL;
    stack = push(stack, 1);
    stack = push(stack, 2);
    stack = push(stack, 3);
    stack = push(stack, 4);

    stack = pop(stack);
    stack = pop(stack);
    stack = pop(stack);
    stack = pop(stack);

    system("PAUSE");
    return 0;
}

 

posted @ 2018-12-29 20:07  Hk_Mayfly  阅读(178)  评论(0编辑  收藏  举报