我栈输出的时候为什么输出不出来

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:04:21
#include<stdio.h>
#include<stdlib.h>
#define elemtype int
#define MAXSIZE 100

typedef struct stack{
elemtype elem;
struct stack *next;
}STACK;

void InitStack(STACK *top)
{
top->next=NULL;
}

int EmptyStack(STACK *top)
{//判断是否栈空,为空则返回1,否则返回0
if(top->next==NULL){
return 1;
}
else{
return 0;
}

}

int push(STACK *top, elemtype x)
{//元素x进栈操作,成功返回1,否则返回0
STACK *p;
p=(STACK *)malloc(sizeof(STACK));
p->elem=x;
p->next=top->next;
top->next=p;
return 1;
}

elemtype pop(STACK *top)
{//出栈操作,返回出栈元素
if(EmptyStack(top)){
printf("栈为空");
return 0;
}
else{
elemtype x;
STACK *p;
p=top->next;
x=p->elem;
top->next=p->next;
free(p);
p=top->next;
return

补充:编译的时候已经报警告了。
i 没有赋值就引用了。
好习惯是消灭每个警告。

scanf("%d,&i");

不对!

scanf("%d",&i); 才对。

你的引号位置不对。所以i没有被赋值,是默认的一些负数。

你插入,显示都没有什么错。就是输入错了。

你就这句错误了
case 1:
printf("请输入进栈元素:");
scanf("%d",&i);//////////你写的你看看吧