栈的链表实现

来源:互联网 发布:拍网络剧怎么赚钱 编辑:程序博客网 时间:2024/05/22 03:15
#include<iostream>using namespace std;typedef struct Node *PtrToNode;typedef struct Node *Stack;   //typedef PtrToNode Stackstruct Node{int n;struct Node *next;};//创建Stack creat_stack(){Stack s;s = new struct Node;if (s == NULL) {cout << "Out of space" << endl;return 0;}s->next = NULL;return s;}//进栈void push(int x, Stack s){PtrToNode temp;temp = new struct Node;if (temp == NULL) {cout << "Out of space!" << endl;return;}temp->n = x;temp->next = s->next;s->next = temp;}//判断是否空栈int IsEmpty(Stack s){return s->next == NULL;}//返回栈顶元素int top(Stack s){if (IsEmpty(s)){cout << "Empty stack!" << endl;return 0;}return s->next->n;}//出栈void pop(Stack s){PtrToNode temp=s->next;if (IsEmpty(s)){cout << "Empty stack!" << endl;return;}cout << "执行出栈!" << endl;s->next = temp->next;free(temp);}//遍历输出void display(Stack s){PtrToNode tmp;tmp = s->next;cout << "遍历栈:";while (tmp!= NULL) {cout << tmp->n << "  ";tmp = tmp->next;}cout << endl;}int main(){Stack s;s = creat_stack();push(4, s);push(10, s);push(5, s);push(7, s);display(s);cout << "栈顶元素:" << top(s) << endl;pop(s);display(s);}

0 0
原创粉丝点击