C語言資料結構作業括弧匹配檢驗

2021-10-10 06:36:57 字數 1562 閱讀 9090

假設表示式中允許包含兩種括號:圓括號和方括號,其巢狀的順序隨意,如([ ]())[([ ][ ])]等為正確的匹配,[( ])([ ]( )(()))均為錯誤的匹配。

現在要求檢驗乙個給定表示式中的括弧是否正確匹配。

輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出ok,不匹配就輸出wrong。

輸入1

輸出1

ok

輸入2

輸出2

wrong

oj提示segmentation fault: 段錯誤,檢查是否有陣列越界,指標異常,訪問到不應該訪問的記憶體區域的寫法?

俺不懂(t_t)

#define _crt_secure_no_warnings

#include

#include

#include

struct stack

;struct stack initiatestack()

void

push

(struct stack* s,

char a)

*s->top++

= a;

}char

pop(

struct stack* s)

intmain()

else

} a =

getchar()

;}if(s.base != s.top)flag =0;

flag ==0?

printf

("wrong"):

printf

("ok");

return0;

}

可以通過oj的寫法?

#define _crt_secure_no_warnings

#include

#include

#include

intmain()

, c;

while

(scanf

("%c"

,&c)==1

)else

if(c ==

')'&& a[flag]

=='('

)flag--

;else

if(c ==

']'&& a[flag]

=='['

)flag--

;else

} flag ==0?

printf

("ok\n"):

printf

("wrong\n");

return0;

}

括弧匹配檢驗(C語言)

描述 假設表示式中允許包含兩種括號 圓括號和方括號,其巢狀的順序隨意,如 或 等為正確的匹配,或 或 均為錯誤的匹配。現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 ok 不匹配就輸出 wrong 輸入乙個字串 輸出...

資料結構 括號匹配的檢驗C語言

演算法 遇到普通字元忽略 所有字元掃瞄完畢,棧為空 成功 匹配失敗或掃瞄完畢,但是棧不為空 失敗 created by xuehu96 on 2019 08 09.include include linkstack.h intisleft const char c return ret int is...

資料結構作業 括號匹配

include include include define max 128 宣告堆疊元素 儲存左括號的型別和位置 struct brackets struct brackets stack max 定義棧 int top 0 定義棧頂且初始化 int ispaired 定義配對標誌位 void p...