主题:关于顺序栈的一些基础知识的问题
#include<stdio.h>
#include"stdlib.h"
#define TURE 1
#define FALSE 0
#define Stack_Size 50
typedef struct
{
int a[Stack_Size];
int top;
}SeqStack;
void InitStack(SeqStack *S)//*初始化
{
S->top=-1;
}
int Push(SeqStack *S)
{
if(S->top==Stack_Size-1)
return(FALSE);
int c;
printf("输入插入的值\n");
scanf("%d",&c);
while((c!=0)&&(S->top!=Stack_Size-1))
{
S->top++;
S->a[S->top]=c;
scanf("%d",&c);
}
return(TURE);
}
int Pop(SeqStack *S)
{
printf("出栈的顺序");
if(S->top==-1)
return(FALSE);
int c;
while(S->top!=-1)
{
c=S->a[S->top];
printf("%d ",c);
S->top--;
}
return(TURE);
}
void main()
{
SeqStack *S;
InitStack(S);
printf("建立栈\n");
Push(S);
Pop(S);
}
我只是想建立一个栈,给它赋值然后按出栈的顺序输出!
我调试过了没有错,但是运行时就不行了!错误了!谁知道怎么解决的!?说一下!
谢了!
#include"stdlib.h"
#define TURE 1
#define FALSE 0
#define Stack_Size 50
typedef struct
{
int a[Stack_Size];
int top;
}SeqStack;
void InitStack(SeqStack *S)//*初始化
{
S->top=-1;
}
int Push(SeqStack *S)
{
if(S->top==Stack_Size-1)
return(FALSE);
int c;
printf("输入插入的值\n");
scanf("%d",&c);
while((c!=0)&&(S->top!=Stack_Size-1))
{
S->top++;
S->a[S->top]=c;
scanf("%d",&c);
}
return(TURE);
}
int Pop(SeqStack *S)
{
printf("出栈的顺序");
if(S->top==-1)
return(FALSE);
int c;
while(S->top!=-1)
{
c=S->a[S->top];
printf("%d ",c);
S->top--;
}
return(TURE);
}
void main()
{
SeqStack *S;
InitStack(S);
printf("建立栈\n");
Push(S);
Pop(S);
}
我只是想建立一个栈,给它赋值然后按出栈的顺序输出!
我调试过了没有错,但是运行时就不行了!错误了!谁知道怎么解决的!?说一下!
谢了!