#include<iostream>
using namespace std;
typedef struct StackNode{
int data;
struct StackNode *next;
}StackNode, *LinkStack;
//初始化
bool InitLinkStack(LinkStack &S){
S = NULL;
}
//入栈
bool Push(LinkStack &S,int x){
StackNode *p = new StackNode;
p->data = x;
p->next = S;
S = p;
return true;
}
//出栈
bool Pop(LinkStack &S,int &x){
if(S==NULL) return false;
StackNode *p = S;
x = S->data;
S = S->next;
delete p;
return true;
}
//读栈顶数据
void ReadTop(LinkStack S){
cout << S->data << endl;
}
//输出栈
void PrintLinkStack(LinkStack S){
while(S != NULL){
cout << S->data << " ";
S = S->next;
}
}
int main(){
LinkStack S;
InitLinkStack(S);
Push(S,1);
ReadTop(S);
Push(S,2); Push(S,3);
PrintLinkStack(S);
cout << endl;
cout <<"当前栈顶元素是:" << S->data << endl;
int x;
Pop(S,x);
cout << "取出的栈顶元素是:" << x << endl;
PrintLinkStack(S);
return 0;
}
C++链栈(不带头结点)
最新推荐文章于 2023-04-03 16:19:16 发布