#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#define MAXSIZE 100
using namespace std;
/*
链栈
*/
typedef struct StackNode
{
int data;
struct StackNode *next;
}StackNode,*LinkStack;
//初始化,不带头结点
int InitStack(LinkStack &S)
{
S = NULL;
return 1;
}
//入栈(头插入法)
int push(LinkStack &S,int e)
{
LinkStack p = new StackNode;
p->data = e;
p->next = S;
S = p;
return 1;
}
//取栈顶元素
int getTop(LinkStack S)
{
if(S!=NULL)
{
return S->data;
}
else
{
return -1;
}
}
//出栈
int pop(LinkStack &S)
{
if(S==NULL)
{
cout<<"int pop(LinkList &S) err:栈空error"<<endl;
return 0;
}
else
{
LinkStack p = S;
S = S->next;
delete p;
return 1;
}
}
int main()
{
LinkStack stack;
InitStack(stack);
push(stack,1);
push(stack,2);
push(stack,3);
push(stack,4);
push(stack,5);
cout<<"getTop:"<<getTop(stack)<<endl;
pop(stack);
cout<<"getTop:"<<getTop(stack)<<endl;
}
线性表-链栈
最新推荐文章于 2022-03-20 20:30:13 发布