括號匹配問題 棧c語言 用棧實現(xiàn)檢驗括號匹配的算法?
用棧實現(xiàn)檢驗括號匹配的算法?我們的想法是推進堆棧,得到前半個括號,標記它,繼續(xù)進入堆棧,直到得到第二個匹配的外括號,然后從堆棧中取出內容。就這樣。用棧檢測括號匹配?這是與括號匹配的函數(shù)部分:以下是與括
用棧實現(xiàn)檢驗括號匹配的算法?
我們的想法是推進堆棧,得到前半個括號,標記它,繼續(xù)進入堆棧,直到得到第二個匹配的外括號,然后從堆棧中取出內容。就這樣。
用棧檢測括號匹配?
這是與括號匹配的函數(shù)部分:以下是與括號匹配的函數(shù)部分:
]voidmatch(seqsstacks,char*STR)//比較括號
!“n-
多余的右支架!n “
]exit(0)]}
]else
{
ch=gettop(&)
if(compare(ch,STR[i])
Pop(&)
else
{
printf(”n-u-
相應的左括號和右括號屬于不同的類!n“”
exit(0)
}
}
}
]如果(getop&)=“”
printf(“”)]n^ ^ ^方括號匹配^ ^ n“”
else
{
printf(“n--要解決堆棧問題,我們遇到了左方括號堆棧,右方括號將堆棧從堆棧中展開。當堆棧出來時,我們判斷它是否匹配,當掃描結束時堆棧為空時,它將匹配,否則它不匹配
(loop with stack=“()
!](loop with stack=“()
!for charross”[{(({(()()
!]((((((()(push char stack))
(否則(if(eq(car stack)(getf close char))
(pop stack)
(return nil)))
最后(return t))