#includeusing namespace std;typedef struct Node{ int info; Node * link;}Node;typedef struct LinkStack{ Node * top;}LinkStack;int push(LinkStack * stack, int x){ Node * p = new Node; p->info = x; p->link = stack->top; stack->top = p; return 1;}int pop(LinkStack * stack){ if (stack->top == NULL){ printf("栈为空!\n"); return -1; } else { Node * p; p = stack->top; stack->top = stack->top->link; int t = p->info; return t; }}int main(){ int train; while(scanf("%d",&train)&&train){ int trains[1001]; while(1){ scanf("%d",&trains[0]); if(trains[0]==0){ printf("\n"); break; } else { for(int x=1;x top = NULL; int num=0; for(int i=0;i top!=NULL&&stack->top->info==trains[num]){ pop(stack); num++; } } if (num==train) cout << "Yes" << endl; else cout << "No" << endl; } } }