//链栈 头入头出, data,next
#include<bits/stdc++.h>
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef int SElemType;
typedef struct StackNode{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStack;
Status InitStack(LinkStack &S){
S=NULL;
return OK;
}
Status Push(LinkStack &S,SElemType e){
LinkStack p =new StackNode;
p->data=e;
p->next=S;
S=p;
return OK;
}
Status Pop(LinkStack &S,SElemType &e){
LinkStack p;
p=S;
e=S->data;
S=S->next;
delete p;
return OK;
}
int GetTop(LinkStack S){
if(S!=NULL){
return S->data;
}
}
void print(LinkStack S){
if(S==NULL) return;//递归终止;
else{
cout<<S->data<<" ";
print(S->next);
}
}
int main(){
LinkStack S;
InitStack(S);
Push(S,1);
cout<<GetTop(S)<<endl;
Push(S,0);
Push(S,1);
print(S);
cout<<endl;
SElemType e;
Pop(S,e);
cout<<e;
}
数据结构:链栈
于 2023-11-30 16:56:25 首次发布