棧的應用之括號匹配問題

2021-09-28 19:36:55 字數 1181 閱讀 6019

#include

#include

#define size 10

typedef

char stackelemtype;

typedef

struct

seqstack;

void initstack (seqstack *s)

intpush

(seqstack * s,stackelemtype x)

//順序棧進棧運算

s->top++

;//修改棧頂指標

s->elem[s-

>top]

=x;//x進棧

return1;

}int

pop(seqstack * s,stackelemtype * x)

//順序棧出棧運算

else

}int

gettop

(seqstack * s,stackelemtype * x)

//順序棧讀棧頂元素

else

}int

match

(char ch,

char str)

//判斷兩個括號是否匹配')

||ch==

'('&&str==

')')

else

}int

isempty

(seqstack * s)

//判空

else

}void

bracketmatch

(char

*str)':

if(isempty

(&s)

)else

else}}

}if(isempty

(&s)

)else

}int

main()

執行結果如下:

棧的應用之括號匹配問題

題目描述 如果乙個括號序列中的每個左括號都有乙個右括號與之完成配對,這個序列就是乙個合法的括號匹配序列。例如 char a abc 左右括號匹配不正確 char b abc 右括號多於左括號 char c abc 左括號多於右括號 char d abc 左右括號匹配正確 請用一種資料結構判斷出以上四...

棧的應用之括號匹配

在許多正文中都有括號,特別是在表示程式 數學表示式的正文片段裡,括號有正確配對問題。作為例子,下面考慮python程式裡的括號,在這裡可以看到 不難總結出檢查括號配對的原則 在掃瞄正文過程中,遇到的閉括號應該與此前最近遇到且尚未獲得匹配的開括號配對。如果最近的未匹配開括號與當前閉括號不配對,或者找不...

棧的應用之括號匹配

給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。將左括號進棧,當遇到右括號時與棧頂元素進行括號匹配,左右括號不匹配或者棧為空時退出,匹配則彈出棧頂元素,最後判斷棧是否為空,為空則說明所有的括號都匹配了,反之則存在不匹配的括號...