粗略写了一个程序,存在bug:
(1)缺少右括号时只能判断出存在括号不匹配,而不能指出哪一行括号不匹配;
(2)缺少左括号的时候不能判出哪一行缺少左括号,只能判处哪一行右括号缺少能够相匹配的左括号。
sqstack头文件部分
#ifndef CIRCLE_H
#define CIRCLE_H
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR -1
#define true 1
#define false 0
#define overflow -1
#define stack_init_size 20
#define stack_increment 10
typedef int selemtype;
typedef struct
{
selemtype *base;
int top,stacksize;
}sqstack;
int init_stack(sqstack &s)
{
s.base=(selemtype *)malloc(stack_init_size*sizeof(selemtype));
if(!s.base)
exit(overflow);
s.top=0;
s.stacksize=stack_init_size;
return OK;
}
int gettop(sqstack s,selemtype &e)
{
if(!s.top)
return ERROR;
e=s.base[s.top-1];
return OK;
}
int stackempty(sqstack s)
{
return !s.top;
}
int push(sqstack &s,selemtype e)
{
selemtype *newbase;
if(s.top==s.stacksize)
{
newbase=(selemtype*)r