資料結構實驗之棧四 括號匹配

2021-07-16 05:15:41 字數 1012 閱讀 9623

給你一串字元,不超過50個字元,可能包括括號、數字、字母、標點符號、空格,你的任務是檢查這一串字元中的( ) ,[ ],是否匹配。

輸入資料有多組,處理到檔案結束。

如果匹配就輸出「yes」,不匹配輸出「no」

sin(20+10)]

yes

no

小貼士:本題因為輸入的字串中可能包括空格,所以在獲取字串時要使用gets( );切記不可用scanf();

演算法:每當遇到左括弧讓其進棧,如果遇到右括弧,如果此時棧為空則配對失敗,輸出no,否則輸出棧頂元素,並 與該右括弧看是否配對,若失敗則輸出no並退出迴圈

如果沒有退出迴圈,並且比較完所有字元時此時棧為空,則證明配對成功,若棧不為空,則失敗;

具體源**

#include #include #include #include #define stackmax 100//定義初始最大儲存容量位100

#define stackcreate 10//每次容量不足時一次增加10

/*定義棧的型別*/

typedef struct

sqstack;

/*建立空表*/

int initstack(sqstack &s)

/*插入元素的函式(進棧)

int push(sqstack &s,char e)

*s.top++=e;

return 1;

}/*出棧並返回棧頂值*/

int pop(sqstack &s,char &e)

/*ïú»ù—£*/

void destroystack(sqstack &s)

int main()

{ char a[60],e;

int i,n;

while(gets(a))

{sqstack s;

initstack(s);

n=strlen(a);

for(i=0; i

資料結構實驗之棧四 括號匹配

time limit 1000ms memory limit 65536k 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。輸入資料有多組,處理到檔案結束。如果匹配就輸出 yes 不匹配輸出 no sin 20 10 yesno ma...

資料結構實驗之棧四 括號匹配

資料結構實驗之棧四 括號匹配 time limit 1000ms memory limit 65536k 題目描述 給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。輸入 輸入資料有多組,處理到檔案結束。輸出 如果匹配就輸出 yes 不...

資料結構實驗之棧四 括號匹配

給你一串字元,不超過50個字元,可能包括括號 數字 字母 標點符號 空格,你的任務是檢查這一串字元中的 是否匹配。輸入資料有多組,處理到檔案結束。如果匹配就輸出 yes 不匹配輸出 no sin 20 10 yesno 鍊錶的方法,較為複雜。需要建立鏈棧,將陣列代替棧的方法換為了線性表 includ...