读书人

求教关于栈的操作解决办法

发布时间: 2013-10-27 15:21:50 作者: rapoo

求教,关于栈的操作
1.为什么不能求S->top的值?

2.为什么当select=3时,运行不了Pop()?

#include<stdio.h>
#include<stdlib.h>
#define true 1
#define false 0
#define N 1000
typedef struct
{
int data[N];
int top;
}stackseq;



int empty(stackseq *S)
{
if(S->top==0)
return true;
else
return false;
}

void Push(stackseq *S, int x)
{
if(S->top<=N)
{S->top++;
S->data[S->top]=x;
}
}

int Pop(stackseq *S)
{
if(S->top==-1)
{ printf("underflow");
return 0;
}
else
{S->top--;
return S->data[S->top+1];
}
}



int main()
{
int select,x,y;
stackseq S;

do
{
// printf("\n");
printf("1-intial 2-push 3-pop 0-exit");
printf("\n please select(1,2,3,0): ");
scanf("%d",&select);

switch (select)
{
case 1:
//initial(&S);

empty(&S);
break;
case 2:
printf("\n please input a data:");
scanf("%d",&x);
Push(&S,x);
break;
case 3:
Pop(&S);
break;
//case 4:
// stacklen(&S);
case 0:
exit(0);
break;
}
}while (select!=0);
system("pause");
return 0;
}

return S->data[S->top+1];//
}
[解决办法]
就是楼上两位说的问题!

读书人网 >C语言

热点推荐