//括號匹配
/*演算法思想:
**若是左括號,入棧,若是右括號,則出棧乙個左括號判斷是否與之匹配;
**檢驗棧是否為空,只有棧空,整個字串才是括號匹配的。
*/#include
#include
#include
#define elemtype char
using namespace std;
typedef
struct snodesnode,
*slink;
typedef
struct
stack;
//初始化棧
void
initstack
(stack &s)
;//入棧操作
bool push
(stack &s,elemtype e)
;//出棧操作
bool pop
(stack &s,elemtype &e)
;//判斷棧是否為空
bool empty
(stack s)
;//判斷函式
bool check
(char
*str)
;int
main
(void
)else
return0;
}//判斷函式
bool check
(char
*str)
}else
break
;case
']':if(
pop(s,e))}
else
break;}
}if(empty
(s))
else
}//初始化棧
void
initstack
(stack &s)
//入棧操作
bool push
(stack &s,elemtype e)
//出棧操作
bool pop
(stack &s,elemtype &e)
snode *p = s.top->next;
e = p->data;
s.top->next = p->next;
s.count--
;free
(p);
return true;
}//判斷棧是否為空
bool empty
(stack s)
else
}
資料結構 棧的應用 括號匹配
include include include 鏈式棧 括號匹配校驗 define success 0 define failure 1 typedef struct nodestnode def typedef struct linkstackstlinkstack def typedef voi...
資料結構與演算法 棧的應用
逆序輸出 輸出的次序和處理次序相反,而且遞迴的深度不容易預知。比如進製轉換,括號匹配 進製轉換 void convert stack char s,int n,int base while n 0 括號匹配 括號匹配 bool paren vector char v elseif s.empty e...
資料結構與演算法(4) 棧的應用
include include include using namespace std bool matchbrackets char pstr else if pstr i pstr i pstr i else s.top else if s.empty else int main char pt...