连续出栈两个数据有问题,高手帮看下!~
typedef struct SNode{
struct SNode *top;
char ch;
struct SNode *next;
}*StackList;
typedef StackList operators;
void InitStack(operators &P){
SNode *node=(SNode*)malloc(sizeof(SNode));
node->top=NULL;
node->ch='#';
node->next=NULL;
P->top=node;
}
void PushStack(operators &P,char &ch){
SNode *node=(SNode*)malloc(sizeof(SNode));
node->top=NULL;
node->ch=ch;
node->next=P->top;
P->top=node;
cout<<" Push "<<P->top->ch<<endl;
}
void PopStack(operators &P,char &ch){
ch=P->top->ch;
--P->top;
}
[解决办法]
你的top是不是指向栈顶下一个位置,直接取ch=P->top->ch; 是不是错了还是怎样.