链栈是指采用链式存储结构实现的栈。
链栈示意图
C++代码
#include<iostream>
#define MAX 6
using namespace std;
typedef struct StackNode
{
int data;
struct StackNode *next;
}stackNode,*Linkstack;
bool initStack(Linkstack &s)
{
s = NULL;
return true;
}
bool push(stackNode* &s,Linkstack &p)
{
for( int i=0; i<MAX; i++ )
{
p =new stackNode;
cin>>p->data;
cout<<"第"<<i+1<<"个入栈的值为"<<p->data<<endl;
p->next = s;
s = p;
}
cout<<endl;
return true;
}
bool pop(stackNode* &s,Linkstack &p)
{
for( int i=0; i<MAX; i++ )
{
cout<<"第"<<i+1<<"个出栈值为"<<s->data<<endl;
s = s->next;
}
return true;
}
int main()
{
Linkstack s,p;
cout<<"栈的大小为"<<MAX<<endl;
initStack(s);
push(s,p);
pop(s,p);
}
结果
栈的大小为6
1
第1个入栈的值为1
2
第2个入栈的值为2
3
第3个入栈的值为3
4
第4个入栈的值为4
5
第5个入栈的值为5
6
第6个入栈的值为6
第1个出栈值为6
第2个出栈值为5
第3个出栈值为4
第4个出栈值为3
第5个出栈值为2
第6个出栈值为1
--------------------------------
Process exited after 7.66 seconds with return value 0
请按任意键继续. . .
博客仅作为自己的学习笔记,难度偏基础,如有任何问题可以评论留言
欢迎各位大佬的发言
转载需说明!