输入描述本文将介绍链栈的入栈与出栈的操作。
输出描述整数n
n个元素
具体代码n个元素按出栈顺序输出
#include输入样例#include using namespace std; #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; typedef char SElemType; typedef struct StackNode { SElemType data; struct StackNode *next; } StackNode, *linkStack; Status Push(linkStack &S, SElemType e); Status Pop(linkStack &S, SElemType &e); //算法 链栈的初始化 Status InitStack(linkStack &S) { // 构造一个空栈 S,栈顶指针置空 S = NULL; return OK; } int main() { linkStack s,p; int n,i; SElemType x,t; InitStack(s); cin>>n; for(i=0;i >x; Push(s,x); } //出栈 while(Pop(s,t)) { cout< data = e; //将新结点数据域置为e p->next = S; //将新结点插入栈顶 S = p; //修改栈顶指针为p return OK; } //链栈出栈 Status Pop(linkStack &S, SElemType &e) { linkStack x; //判断链表是否为空表 if(S == NULL) return ERROR; else e = S->data; x = S; S = S->next; delete x; return OK; }
输出样例3 A B C
总结C B A
链栈的入栈与出栈就相当于链表的尾插和倒向输出。



