#include
#include
#include
#define emptytos
(-1)
#define minstacksize
( 5 )
typedef char elementtype ;
struct stackrecord
;typedef struct stackrecord *stack;
int isempty(stack s);
//判空函式
int isfull(stack s);
//排滿函式
stack creatstack(int maxelement);
//建立大小為maxelement的棧
void disposestack(stack s);
//銷毀棧
void makeempty(stack s);
//清空棧
void push(elementtype x,stack s);
//入棧
elementtype top(stack s);
//棧頂元素
void pop(stack s);
//出棧
elementtype topandpop(stack s);
//出棧並返回棧頂元素
int main(void)
if(!isempty(s)) printf("top = %c\n",top(s));
//printf("%d\n",a[i] - top(s));
if( (a[i] - top(s)) == 2)
// '[' 與 ']','('與')' 的值差2
pop(s);
//if(!isempty(s)) printf("i = %d top = %c\n",i,top(s));
}if(isempty(s))
printf("yes");
else
printf("no");
return 0;
} stack creatstack(int maxelement)
//建立大小為maxelement的棧
void disposestack(stack s)
//銷毀棧
}int isempty(stack s)
//判空
int isfull(stack s)
//判滿
void makeempty(stack s)
//清空棧
void push(elementtype x,stack s)
//入棧
elementtype top(stack s)
//取棧頂元素
}void pop(stack s)
//出棧
elementtype topandpop(stack s)
//出棧並取棧頂元素
}
棧的應用之括號匹配
在許多正文中都有括號,特別是在表示程式 數學表示式的正文片段裡,括號有正確配對問題。作為例子,下面考慮python程式裡的括號,在這裡可以看到 不難總結出檢查括號配對的原則 在掃瞄正文過程中,遇到的閉括號應該與此前最近遇到且尚未獲得匹配的開括號配對。如果最近的未匹配開括號與當前閉括號不配對,或者找不...
棧的應用之括號匹配
給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。將左括號進棧,當遇到右括號時與棧頂元素進行括號匹配,左右括號不匹配或者棧為空時退出,匹配則彈出棧頂元素,最後判斷棧是否為空,為空則說明所有的括號都匹配了,反之則存在不匹配的括號...
棧的應用之括號匹配檢驗
棧結構具有後進先出的固有特性,在程式設計中很有幫助。這裡舉乙個例子,將棧應用與括號匹配的檢驗。假設表示式中允許三種括號 小括號 中括號和大括號,巢狀的順序任意。等均為正確格式。檢驗括號是否匹配可用 期待的急迫程度 來描述。接收乙個正括號後,計算機期待著乙個與之匹配的反括號。如果此時接收到乙個反括號,...