3、栈 pop操作 stack-pop 操作 // 栈的pop操作,将栈顶元素弹出charpop(structStack**top){if(*top==NULL){return'\0';}chardata=(*top)->data;structStack*temp=*top;*top=(*top)->next;free(temp);returndata;} 4、检查括号是否匹配 check 是否括号匹配
当遇到右括号(如)、]、})时,检查栈顶元素是否与该右括号匹配。如果匹配,则弹出栈顶元素;否则,返回括号不匹配。 遍历结束后,检查栈是否为空: 遍历完整个字符串后,如果栈为空,说明所有左括号都找到了对应的右括号,括号匹配成功;否则,说明有未匹配的左括号,括号匹配失败。 代码实现 c #include <stdio.h>...
算法实现:1.利用栈来实现只需要考虑输入的是不是左括号'(' ,右括号')' 2.当是左括号时 就让'('进栈 ,当遇到右括号是')'就出栈。p.s 这里栈我用的静态栈比较简单~ 3.考虑栈里'('多余了,则用top判断,如果完全匹配那么栈里的top应该为初始值为等于-1,输出YES,否则输出NO 4.考虑栈元素下溢的问题,比...
括号匹配(栈实现) #include <cstdio> #include <iostream> using namespace std; #define MAXSIZE 20 typedef struct { char *base; char *top; int stacksize; }SqStack; void InitStack(SqStack &S) { S.base = (char *)malloc( MAXSIZE * sizeof(char) ); if(S.base == NULL) exit(-2); ...