#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct stack{
unsigned long long int data;
struct stack* next;
}stack;
stack* initstack(){
stack* s=(stack*)malloc(sizeof(stack));
s->data=0;
s->next=NULL;
return s;
}
void push(unsigned long long int x,stack* s){
//入栈 队尾入栈
stack* s1=initstack();
stack* head=s;
int i=0;
for(;i<head->data;i++)
s=s->next;
s1->data=x;
head->data++;
s->next=s1;
s1->next=NULL;
s=head;
}
void pop(stack* s){
//出栈 队尾出栈
if(s->data==0){
printf("Empty\n");
return ;
}s->data--;
int i=0,j=s->data;
for(;i<j-1;i++)
s=s->next;
s->next->data=0;
s->next=NULL;
}
void query(stack* s){
if(s->data!=0)
printf("%llu\n",s->next->data);
else printf("Auguei!\n");
}
void size(stack* s){
printf("%d\n",s->data);
}
void clean(stack* s){
stack* h=s;
while(s->next!=NULL){
s->data=0;
}s->data=0;
h->next=NULL;
h->data=0;
s=h;
}
int main(){
int t=0,n=0,i=0,j=0;
unsigned long long int m=0;
char a[6];
stack* s=initstack();
scanf("%d",&t);
for(i=0;i<t;i++){
scanf("%d",&n);
for(j=0;j<n;j++){
scanf("%s",a);
if(!strcmp(a,"push")){
scanf("%llu",&m);
push(m,s);
}else if(!strcmp(a,"pop"))
pop(s);
else if(!strcmp(a,"query"))
query(s);
else size(s);
}clean(s);
}free(s);
return 0;
}
链表栈,已清空,已ull