//採用順序棧程式設計實現:表示式的括號是否匹配問題。
//要求:輸入帶括號的表示式,判斷其中括號是否配對。
//擴充套件功能:給出配對括號的位序和不配對括號的位序。
#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...