剛開始學習數據結構,用桟寫了一個經典的應用,括號匹配。
算法思路:
輸入字符串時,將 '(' , '[' 壓入桟,遇到 ‘)’ ']' 時,再棧頂出桟,進行括號匹配,如果成功匹配,則繼續進行,否則,程序結束,輸入不匹配信息,
如果 ‘)’ ']' 均匹配,則看判斷桟是否為空,如果為空,則輸入匹配,否則,輸出符號數量不匹配。
#includeusing namespace std; #define max 100 struct stack { int Top; int MaxSize; char *element; }; typedef struct stack Stack; void Init(Stack *S,int n) { if(n>0) { S->Top=-1; S->MaxSize=n; S->element=new char [S->MaxSize]; } } bool IsFull(Stack *S) { return (S->Top==S->MaxSize-1); } bool IsEmpty(Stack *S) { return (S->Top==-1); } void push(Stack *S,char x) { if(!IsFull(S)) S->element[++S->Top]=x; else { cout<<"桟滿"< element[S->Top--]; else { cout<<"桟空"<
都是簡單的定義,簡單的功能。