#include<stdio.h>
#include<stdlib.h>
typedef struct LinkedStackNode{
int data;
LinkedStackNode *next;
}LinkedStackNode,*LinkedStack;
int InitLinkedStack(LinkedStack &L){
L=(LinkedStackNode*)malloc(sizeof(LinkedStackNode));
L->next=NULL;
return 1;
}
int DestroyList(LinkedStack &L){
LinkedStack temp;
while(L){
temp=L->next;
free(temp);
L=temp;
}
return 1;
}
int LinkedStackEmpty(LinkedStack L){
if(!L->next){
printf("LinkedStack is Empty\n");
return 1;
}
else{
printf("LinkedStack isn't Empty\n");
return 0;
}
}
int Push(LinkedStack &L,int e){
LinkedStack temp;
temp=(LinkedStackNode*)malloc(sizeof(LinkedStackNode));
temp->data=e;
temp->next=L->next;
L->next=temp;
return 1;
}
int Pop(LinkedStack &L,int &e){
LinkedStack temp;
temp=L->next;
e=temp->data;
L->next=temp->next;
free(temp);
return 1;
}
int GetElem(LinkedStack L,int &e){
return e=L->next->data;
}
int main() { //记几个测试代码,可随意修改
int n,i,e;
LinkedStackNode *top;
InitLinkedStack(top);
LinkedStackEmpty(top);
scanf("%d",&n);
for(i=1;i<=n;i++){
Push(top, i);
}
Pop(top,e);
printf("%d\n",e);
GetElem(top, e);
printf("%d\n",e);
DestroyList(top);
return 0;
}
链栈基本操作
猜你喜欢
转载自blog.csdn.net/m0_46200758/article/details/108243848
今日推荐
周排行