链栈
类似于头插法的链表
#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; }