1要求
编写程序检查该字符串的括号是否成对出现,而且不能交叉出现。
输入:
一个字符串,里边可能包含“()”、"{}"、“[]”三种括号,“#”结束
输出:
成功:代表括号成对出现并且嵌套正确
失败:未正确使用括号字符。
2分析
用一个栈,就能解决该问题,左括号栈顶字符必须和第一个入栈的右括号字符匹配。
栈介绍:栈是一种特殊的线性表,仅能在线性表的一端操作。
栈的特性:后进先出(LIFO)
由于正在学数据结构,于是栈的定义与操作都是自己编写的,为了巩固概念
3代码
#include<stdio.h>
#include <malloc.h>
#define STACK_INT_SIZE 100
#define STACKINCREMENT 10
#define bool int //自定义bool变量
#define SElemType char
typedef struct {
SElemType *base; //栈基地址
SElemType *top; //栈顶地址
int stacksize;
} SqStack;
//------基本操作的算法描述------
//构建一个空栈
bool InitStack(SqStack *S) {
S->base = (SElemType *) malloc(STACK_INT_SIZE * sizeof(SElemType)); //开辟新的空间
if (!S->base) return 0; //开辟失败返回0
S->top = S->base;
S