首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-10-27 
求教,关于栈的操作1.为什么不能求S-top的值?2.为什么当select3时,运行不了Pop()?#includestdio.h #inc

求教,关于栈的操作
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];//
     }         
[解决办法]
就是楼上两位说的问题!

热点排行