| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 328 人关注过本帖
标题:栈,输入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
快速回复:栈,输入I入栈,输入o出栈,输入10个数看是否正确,如果栈内没有元素出 ...
数据加载中...
 
   



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

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