棧在括號匹配中的應用 C語言

2021-10-05 11:18:54 字數 1815 閱讀 2388

基本思想:

左括號進棧。

右括號與棧頂元素匹配。

// 棧在括號匹配中的應用

#define _crt_secure_no_warnings

#include

#include

#include

#define maxsize 100

/*定義結構體*/

typedef

struct

sqstack;

sqstack s;

// 定義全域性結構體變數

/*函式宣告*/

// 字串初始化

char

*initstr

(char

* strp)

;// 初始化棧】

void

initstack()

;// 進棧

void

push

(char

* strpelem)

;// 出棧

char

pop();

// 匹配字串

intmatchstr

(char str1,

char str2)

;int

main

(int argc,

char

** ar**)

}";char str[maxsize]

;char

* strp =

null

;int flag =1;

// 正確格式標誌

char pop_elem;

// 出棧元素

// // 字串初始化

strp =

initstr

(str)

;//strp = &str;

/*printf("len===-> %d\n", strlen(strp));

printf("*****00000000= %c\n", *(strp + 1));*/

// 初始化棧】

initstack()

;/*依次讀取符號,是左括號則進棧,是右括號則與棧頂元素匹配。檢視結果*/

for(

int i =

0; i <

strlen

(strp)

; i++)'

:// 出棧並匹配

pop_elem =

pop();

flag =

matchstr

(pop_elem,

'// 如果有一次不匹配,則結束迴圈if(

!flag)}if

(flag)

else

system

("pause");

return0;

}// 字串初始化

char

*initstr

(char

* strp)

}return strp;

}// 初始化棧

void

initstack()

// 進棧

void

push

(char

* strpelem)

char

pop(

) pop_elem = s.data[s.top--];

return pop_elem;

}int

matchstr

(char str1,

char str2)

return0;

}

c語言 括號匹配檢測(棧的應用)

括號匹配檢測,對於一串帶括號的字元 1.如果是左括號,入棧 2.如果是右括號,與棧頂元素比較,若形成括號對,則棧頂左括號出棧 若不能形成括號對,則括號不能匹配 include include define init size 6 初始棧空間 define incre size 2 佔空間增量 棧結構...

棧應用 括號匹配

假設表示式中允許包含兩種括號 圓括號和方括號。編寫乙個演算法判斷表示式中的括號是否正確配對。由括號構成的字串,包含 如果匹配輸出yes,否則輸出no。複製 yes解決思想 拿到字串後,遍歷字串,當遇到左括號就進棧,右括號棧頂元素出棧,如果括號是匹配的,則最終棧空。include includetyp...

棧的應用 括號匹配

3.1棧的應用 括號匹配 一 實驗目的1 掌握堆疊特殊線性表的儲存方式的基本操作方法。2 掌握堆疊後進先出運算原則在解決實際問題中的應用。3 掌握使用棧的原理來解決表示式中的括號配對問題。二 實驗內容 假設乙個算術表示式中包含圓括弧 方括弧三種型別的括弧,編寫乙個程式用於判別表示式中括弧是否正確配對...