各位高手,敬请帮我看个C语言的程序吧(数据结构)

#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define STACK_SIZE 20
typedef struct
{
int data[STACK_SIZE];
int top;
}SeqStack;
void InitStack(SeqStack *s)
{
(*s).top = -1;
}
int IsEmpty(SeqStack *s)
{
if((*s).top == -1) return TRUE;
return FALSE;
}
int IsFull(SeqStack *s)
{
if((*s).top == STACK_SIZE-1) return TRUE;
return FALSE;
}
int Push(SeqStack *s, int element)
{
if(IsFull(s)) return FALSE;
(*s).top ++;
(*s).data[(*s).top] = element;
return TRUE;
}
int Pop(SeqStack *s, int element)
{
if(IsEmpty(s)) return FALSE;
element = (*s).data[(*s).top];
(*s).top --;
return TRUE;
}
int GetTop(SeqStack *s,int element)
{
if(IsEmpty(s)) return FALSE;
element = (*s).data[(*s).top];
return TRUE;
}
int main()
{
int a[21];
SeqStack *s;
InitStack(s);
for(int i=0;i<20;i++)
{
scanf("%d",&a[i]);
Push(s,a[i]);
}
int e;
while(!IsEmpty(s))
{
Pop(s,e);
printf("%d ",e);
}
system("pause");
return 0;
}

我只想压栈,然后出栈~~~
运行不了啊

main里面SeqStack *s; 只是声明了一个栈的指针,并没有生成栈的实体啊.
应该是SeqStack s;,后面的函数调用都改成InitStack(&s); Push(&s,a[i]);这样
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答