标题:栈,输入I入栈,输入o出栈,输入10个数看是否正确,如果栈内没有元素出栈就 ...
取消只看楼主
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
已结贴  问题点数:10 回复次数:0 
栈,输入I入栈,输入o出栈,输入10个数看是否正确,如果栈内没有元素出栈就错误,最后栈不空也错误,错哪里了。。
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
#define SIZE  50
#define ADD 20
typedef char ElemType ;
typedef struct node{
     ElemType  *base;
     ElemType  *top;
     int stacksize;
}stack;

void initstack (stack *s)
{
    s->base=(ElemType*)malloc (SIZE* sizeof(ElemType));
    if ( !s->base )
    {
        exit(0);
    }
    s->top=s->base;
    s->stacksize=SIZE;
}

void push(stack *s,ElemType e)
{
    if(s->top-s->base >= s->stacksize)
    {
        s->base=(ElemType *)realloc(s->base,(s->stacksize+ADD)*
    sizeof    (ElemType));
    if(!s->base)
    {
        exit (0);
    }
    }
    *s->top++=e;
}
void pop (stack*s,ElemType *e)
{
    if(s->base ==s->top)
      {
          return;
      }
      *e=*--(s->top);
}
void empty(stack *s)
{
    if(s->top==s->base)
    return 1;
    return 0;
}
void stacksize1(stack s)
{
    return (s.top-s.base);
}
int main()
{
    stack s;
    char ch;
    initstack(&s);
    scanf("%c",&ch);
    while(ch!='\n')
    {
        if(ch=='I'||ch=='i')
          push(&s,ch);
        if(ch=='o'||ch=='O')
        {
           if(empty (&s))
           {
               printf("false");
               break;
           }
           else{
               pop(&s,&ch);
           }
        }
        scanf("%d",&ch);
    }
    if(empty(&s))
    {
        printf("true");
    }
    else{
        printf("false");
    }
    return 0;
}
搜索更多相关主题的帖子: include 
2015-04-22 12:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444363-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.894275 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved