m0_63879042 2022-10-13 17:14 采纳率: 0%
浏览 8

使用c语言建立栈出现一些问题

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 255
typedef struct {
char *top;
char *base;
int stacksize;

}SqStack;
int InitStack(SqStack S){
S->base=(char
)malloc(MAXSIZE*sizeof(char));
if(!S->base){
return 0;
}else{
S->stacksize=MAXSIZE;
return 1;
}
}

int Puch(SqStack *S, char e){
if(S->top-S->base==S->stacksize){
return 0;
}else{
*S->top=e;
S->top++;
return 1;
}
}
int Pop(SqStack *S, char x){
if(S->top==S->base){
return 0;
}else{
S->top--;
x=*S->top;
return 1;
}
}

char GetTop(SqStack *S){
if(S->top!=S->base){
return *(S->top-1);
}else{
return 0;
}
}

int StackEmpty(SqStack *S){
if(S->top==S->base){
return 1;
}else{
return 0;
}
}

int Matching(){
SqStack S;
InitStack(&S);
int flag=1;
char ch,x;
scanf("%c",&ch);
while(ch!='@'){
switch(ch){

        case'(':
            Puch(&S,ch);
            flag=0;
            break;
        case')':
            if(!StackEmpty(&S)&&GetTop(&S)=='('){
                Pop(&S,x);
                flag=1;
            }else{
                flag=0;
            
            }
            break;
    
    }
    scanf("%c",&ch);
    
}
if(!StackEmpty(&S)&&flag){
    return 1;
}else{
    return 0;
}

}

int main(){
int h;
h=Matching();
if(h==1){
printf("YES");

}else{
    printf("NO");
}

}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-13 17:26
    关注

    InitStack函数中,你没有将top指向base

    int InitStack(SqStack S){
    S->base=(char)malloc(MAXSIZE*sizeof(char));
    if(!S->base){
    return 0;
    }else{
    S->stacksize=MAXSIZE;
    S->top = S->base;
    return 1;
    }
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件