順序棧實現括號匹配

2021-07-11 19:55:19 字數 1360 閱讀 8806

//採用順序棧程式設計實現:表示式的括號是否匹配問題。

//要求:輸入帶括號的表示式,判斷其中括號是否配對。

//擴充套件功能:給出配對括號的位序和不配對括號的位序。

#include

#include

#include

#include

#include

#define overflow -2

#define stack_init_size 100

#define stackincrement 10

#define error 0

#define ok 1

using

namespace

std;

typedef

struct

brack,*bracket;

typedef

struct

sqstack;

int initstack(sqstack &s)

brack gettop(sqstack s,brack e)

int push(sqstack &s,brack e)

*s.top=e;

s.top++;

return ok;

}int pop(sqstack &s, brack &e)

bool equal_e(char a,char b)

') return

true;

else

if(a=='['&&b==']')

return

true;

else

return

false;

}char ch[100];

int match[100];

int nomatch[100];

int p=0,q=0;

bool find_brack(sqstack s,char e)

}if(flag==1)

return

true;

else

return

false;

}void fun()

//getelem(s);

if(ch[i]=='}'||ch[i]==')'||ch[i]==']')

else

}while(true);

}else}}

while(s.base!=s.top)

if(q!=0)

cout

<<"匹配不成功的括號位序是:"

<" ";

}cout

<<"注:這裡的位序是指括號在表示式中的位置順序!"

用順序棧實現匹配括號功能

用順序棧實現匹配括號功能 include include define maxsize 100 typedef char datatype typedef struct 定義資料結構 seqstack seqstack initstack seqstack push seqstack s,datat...

括號匹配問題 順序棧

思想 每讀入乙個括號 1 若是左括號,則直接入棧,等待相匹配的同類右括號。2 若是右括號,且與當前棧頂的左括號同型別,則二者匹配,將棧頂的左括號出棧,否則屬於不合法的情況。include include define true 1 define false 0 define stack size 5...

順序棧括號匹配問題

使用順序棧解決括號匹配問題 括號匹配問題 包括三種型別的括號 和其他字元,判斷是否存在對應的左右括號 舉例 s 滿足條件 s 不滿足條件 include using namespace std typedef char elemtype const int maxsize 100 struct sq...