#include <iostream>
using namespace std;
struct LinkStack
{
int data;
LinkStack *next;
};
void push(LinkStack *&S,int data) //入栈
{
LinkStack *p=new LinkStack;
p->data=data;
p->next=S;
S=p;
}
void pop(LinkStack *&S) //出栈
{
LinkStack *q=S;
S=S->next;
delete q;
}
int getTop(LinkStack *S) //显示栈顶元素
{
return S->data;
}
void test(LinkStack *&S)
{
int i=1;
while(i)
{
cin>>i;
if(i>0)
push(S,i);
if(i<0)
{
cout<<"getTop="<<getTop(S)<<endl;
pop(S);
}
if(i==0)
break;
}
}
void show(LinkStack *S)
{
while(S)
{
cout<<S->data<<" ";
S=S->next;
}
}
int main()
{
LinkStack *S=NULL;
test(S);
show(S);
return 0;
}
本文介绍了一种基于链表实现的链式栈数据结构,并提供了详细的C++代码实现。文章通过具体的函数如push(入栈)、pop(出栈)和getTop(获取栈顶元素)展示了链式栈的操作过程。此外,还提供了一个简单的测试函数用于验证链式栈的功能。


被折叠的 条评论
为什么被折叠?



