鱼C论坛

 找回密码
 立即注册
查看: 3119|回复: 0

【求助】大家会的帮我看看这个栈出了什么问题,万分感谢

[复制链接]
发表于 2016-6-5 08:38:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面是代码:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

#define Maxsize 50
#define Increase 10

typedef char SElemType;

typedef struct
{
        SElemType * base, * top;
        int stacksize;
}SqStack;

void InitStack(SqStack *s)
{
        s->base = (SElemType *)malloc(Maxsize * sizeof(SElemType));
        if(!s->base)
        {
                printf("内存分配失败!程序将终止!");
                exit(-1);
        }
       
        s->base = s->top;
        s->stacksize = Maxsize;
        return ;
}

void PushStack(SqStack *s, SElemType e)
{
        if(!s->base)
                exit(-1);
        *s->top = e;
        s->top++;
       
        return ;
}

void PopStack(SqStack *s, SElemType *e)
{
        if(s->base != s->top)
    {
                *e = *(--s->top);
        }
       
        return ;
}

bool EmptyStack(SqStack *s)
{
        if(s->base == s->top)
                return true;
        else
                return false;
}

void Traverse(SqStack *s)
{
        SqStack *q = s;
       
        if(!q)
        {
                printf("内存分配失败,程序终止!");
                exit(-1);
        }
        while(q->base != q->top)
        {
                printf("%d", q->top);
                q->top--;
        }
}

int main()
{
        SqStack Operator;
        int c;
       
        InitStack(&Operator);
        PushStack(&Operator, 1);
        PushStack(&Operator, 3);
        PushStack(&Operator, 5);
        PushStack(&Operator, 7);
       
        Traverse(&Operator);
       
        PopStack(&Operator,&c);
        Traverse(&Operator);
       
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表