資料結構3 8符號匹配

2021-10-17 11:05:52 字數 989 閱讀 5506

從左至右掃瞄乙個字串(或表示式),則每個右括號將與最近遇到的那個左括號相匹配。

用棧結構儲存表示式,當遇到配對符號時彈出棧頂符號和匹配符號配對。當符號配對成功則繼續配對直到棧空;當匹配失敗則返回

#include

#include

#include

typedef

struct node* ptrnode;

struct node

;typedef ptrnode stack;

stack create()

bool

is_empty

(stack s)

bool

push

(stack stack,

char data)

intpop

(stack s)

else

return0;

}stack to_top

(stack s)

return s;

}bool

judge

(char

* str,

int size)':

leftsig =

(char

)p->data;

pop(p);if

(leftsig ==

'('&& str[i]

!=')')if

(leftsig ==

'['&& str[i]

!=']')if

(leftsig =='')

default

:break;}

}if(!

is_empty

(p))

else

}int

main()

"};int len =

strlen

(seq)

;judge

(seq, len)

;}

資料結構與演算法 符號匹配(棧的用法)

完成符號匹配程式的重點 建立符號棧,並完善符號匹配的體系 class symbolstack class symbol symbol symbol ptr null class symbolstack symbolstack void remove void pop symbol ptr void ...

資料結構 匹配演算法

演算法實現 kmp kmp真是學到現在為止最頭疼的乙個演算法,嗯我是渣渣 分兩部分 一 子串的next陣列 二 迴圈遍歷。next陣列的意義是 第n項之前的若干項與第1到第next n 1項完全一樣 前驅相同 因此next陣列的尋找方式使用遞迴的想法 對於當前位置i,有開頭的最大子串長度為n 對i ...

資料結構 括號匹配

三種括號形式 輸入一段字串,判斷其括號是否匹配。如下 括號匹配問題 include include include define stack init size 100 define stackincrement 10 define error 0 define true 1 define fals...