当前位置: 首页> 汽车> 报价 > 建筑企业网站_中国纪检监察_在线推广网站的方法_宁波超值关键词优化

建筑企业网站_中国纪检监察_在线推广网站的方法_宁波超值关键词优化

时间:2025/8/23 13:50:22来源:https://blog.csdn.net/x3477144355/article/details/144334317 浏览次数: 0次
建筑企业网站_中国纪检监察_在线推广网站的方法_宁波超值关键词优化

本文就放一个括号匹配的代码,你可以先试着理解理解,我后面会发具体的讲解,以及优化的代码

#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 50
//利用栈实现括号匹配
typedef struct {int top;char *s;
}Stack; 
//init负责初始化栈
void init(Stack* stack){stack->top = -1;
} 
//push负责进栈
void push(Stack* stack,char ch){stack->top ++;stack->s[stack->top] = ch;} 
//isEmpty负责检查栈是否为空
bool isEmpty(Stack* stack){return stack->top == -1;
} 
//pop负责出栈,这里可以用于检查括号是否匹配
bool pop(Stack *stack,char ch){if(isEmpty(stack)){printf("栈空\n");} else {char t = stack->s[stack->top--];if((ch == ')'&& t!='(')||(ch == ']'&& t!='[')||(ch == '}'&& t!='{')){return false;} else {return true;}}
}
void del(Stack* stack){free(stack);
}
int main()
{int flag = 0;Stack *stack = (Stack*)malloc(sizeof(Stack));  //开辟一块叫stack的空间,用于存储栈顶和栈内容 stack->s = (char*)malloc(sizeof(Stack)*MAX_SIZE); //stack空间里面的存储空间 init(stack);printf("输入 回车 意味着结束\n");char ch;while((ch = getchar()) != '\n'){if(ch == '('||ch == '['||ch == '{'){push(stack,ch);  //左括号入栈 flag = 1;} else if(ch == ']'||ch == ')'||ch == '}'){if(!pop(stack,ch)){  //右括号判断是否匹配 printf("不匹配");return 0;}}}if(stack->top == -1 && flag == 1){printf("匹配");} else{printf("不匹配");}del(stack);return 0;
}

写括号匹配的目的就在于掌握栈的基本用法。

到这里就结束啦!!!

欢迎小伙伴们评论区讨论,提问。

我是荒古前,期待你的关注~~~

~~~完结撒花✌y( •̀ ω •́ )y✌~~~

关键字:建筑企业网站_中国纪检监察_在线推广网站的方法_宁波超值关键词优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: