www.5213.net > 用栈做括号匹配的检验

用栈做括号匹配的检验

#include <stdio.h>void getstr(char* p){ printf("input:\t"); scanf("%s", p); return;}void main(){ char st[255];/*在程序中没有起多大作用*/ int top = 0; char str[255]; char k; int i=0; int st_error=0; getstr(str); while ( (k=str[i]) != 0) { if (k == '(' ) st[top++] =

这是其中括号匹配的函数部分:void match(SeqStack S,char *str)//括号的比较 { int i; char ch; for(i = 0; str[i] != '\0'; i++) { switch(str[i]) { case '(': case '[': case '{': Push(&S,str[i]); break; case ')': case ']': case '}': if(GetTop(&S)=='#') { printf("\n -_-!!!

即使没有括号,本来top和base就是等的.所以只有在你输入一个括号的情况下才会显示不匹配.所以要通过其他的方式来判断.其中一个方法如下:#include<stdio.h>#include<stdlib.h>#include<conio.h>char *base;char *top;char ch;bool fa=false;void

输入:串中只含有'(', ')'两个符号,判断是否括号匹配并不需要真正的入栈、出栈,用top移动模拟即可#include int main(){ char s[256], *p; int top = 0; scanf("%s", s); for(p=s; *p; p++) { if(*p == '(')++top; //入 else --top; //出 if(top 评论0 0 0

现成代码,以前做的,你看看吧 # include <stdio.h> # include <malloc.h> #define OK 1 #define ERROR 0 //定义顺序堆栈 #define STACK_SIZE 100 #define STACK_INC 10 typedef char Elem; typedef struct{ Elem *base; Elem *top; int size; }

这是以前做的科学计算的栈以及功能函数,支持小数、多位数、加减乘除、括号运算,会自动判断表达式正误,希望对你有所帮助,当然也包括了括号匹配功能.其实括号匹

#include#includeusing namespace std;int main(){stack st;char ch;while(cin >> ch){if(ch=='(') st.push('(');if(ch==')') {if(st.empty()){cout 评论0 0 0

我要提问 求高手用栈的操作实现”括号匹配检验“这个程序? 求高手用栈的操作实现”括号匹配检验“这个程序,用 匿名 分享到微博 提交回答 1 问: 实现链栈的出栈和入栈操作的实验代码 答: 详情

当遇到左括号时,左括号入栈;当遇到右括号时,首先将栈顶元素弹出栈,再比较弹出元素是否与右括号匹配,若匹配,则操作继续;否则,查出错误,并停止操作

#include<stdio.h>#include<stdlib.h>#include<string.h> int main(int argc, char *argv[]) { int flag = 0; FILE *fp=NULL; fp = fopen(argv[1],"rb"); char ch; char stack[500]; memset(stack, 0, sizeof(stack)); int top = -1; while((ch=fgetc(fp))!=-1) { if(ch=='('||ch

网站地图

All rights reserved Powered by www.5213.net

copyright ©right 2010-2021。
www.5213.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com