关于栈的问题,在入栈后读栈的时候显示的是随机数
#include <stdio.h>#define maxsize 5
typedef struct
{
int Data[maxsize];
int top;
}Stack;
void ini(Stack *L)
{
L->top = 0;
}
int Isfull(Stack* L)
{
if (L->top == (maxsize))
return 1;
else return 0;
}
int Isempty(Stack* L)
{
if (L->top == 0)
return 1;
else return 0;
}
void push(Stack* L, int x)
{
if (Isfull(L))
printf("栈已满\n");
else
{
L->Data[L->top] = x;
L->top++;
}
}
void pop(Stack* L)
{
if (Isempty(L))
printf("栈是空的\n");
else
{
L->top--;
}
}
void read(Stack* L)
{
int i;
if (Isempty(L))
printf("栈为空\n");
else {
for (i = ((L->top)-1); i >= 0; i--)
printf("%d\t", L->Data[L->top]);
}
}
int main()
{
Stack L;
int i;
char x;
int m = 1;
ini(&L);
while (m)
{
printf("入栈1,出栈2,读栈元素3,退出0:\n");
scanf_s("%d", &i);
if (i == 1) {
printf("请输入要入栈的数:\n");
scanf_s("%d", &x);
push(&L, x);
}
else if (i == 2)
pop(&L);
else if (i == 3)
read(&L);
else if (i == 0)
{
m = 0;
printf("程序结束\n");
}
printf("\n");
}
return 0;
}