堆栈问题 主要是出栈函数有错 求解决
#define TRUE 1#define FALSE 0
#define Stack_Size 100
#include<stdio.h>
typedef struct
{
int element[Stack_Size];
int top;
}SeqStack;
void initStack(SeqStack *s)
{
s->top=-1;
}
int IsEmpty(SeqStack *s)
{
return (s->top==-1?TRUE:FALSE);
}
int push(SeqStack *s,int x,int y)
{
if(s->top==Stack_Size-1) return FALSE;
s->top++;
s->element[s->top]=x;
s->top++;
s->element[s->top]=y;
return TRUE;
}
int pop(SeqStack *s,int *p,int *q)
{
if(s->top==-1)
return FALSE;
else
{
*q=s->element[s->top];
s->top--;
*p=s->element[s->top];
s->top--;
return TRUE;
}
}
void main()
{
SeqStack *s;
int *p=0,*q=0,*m=0,*n=0;
s=(SeqStack *)malloc(100);
initStack(s);
push(s,13,100);
push(s,12,200);
pop(s,p,q);
pop(s,m,n);
printf("%d,%d\n",*p,*q);
printf("%d,%d",*m,*n);
}
结果却是:
13,13
13,13
请帮忙解决一下 哪里出错了
非常感谢!!!!