小括号匹配
#include <stdlib.h> #include <stdio.h> #include "G:\JS\mystack.h" int main() { sqstack s; int e; initstack(s); char ch; while (1) { scanf("%c",&ch); if (ch==10) break; if (ch=='(') push(s,ch); else if (ch=')') { if (emptystack(s)) { printf("\n not match--type1...more ) \n"); return 0; } else pop(s,e); } } if (emptystack(s)) { printf("\n match\n"); return 0; } else { printf("\n not match....( more \n"); return 0; } }
#include <stdlib.h>
#include <stdio.h>
#define stackinitsize 20
#define stackincrement 8
typedef struct{
int *base;
int *top;
int stacksize;
}sqstack;
int initstack(sqstack &s)
{s.base=(int * ) malloc(stackinitsize*sizeof(int));
s.top=s.base;
s.stacksize=stackinitsize;
return 1;
}
int push(sqstack &s,int e)
{
*(s.top)=e;
s.top++;
return 1;
}
int gettop(sqstack s)
{
return *(s.top-1);
}
int emptystack(sqstack s)
{if (s.top==s.base) return 1;
else return 0;
}
int pop(sqstack &s,int &e)
{ if (emptystack(s)) return 0;
--s.top;
e=*(s.top);
return 1;
}

浙公网安备 33010602011771号