資料結構 棧實現括號匹配

2021-07-30 22:56:34 字數 1007 閱讀 1740

真正學習之後,才發現那些所謂的大嬸不過是多用功了些。不知道以前為什麼不親自動手做做,原來這麼簡單。

#include #include #include #include /**棧的鏈式儲存**/

typedef struct data;

typedef struct stack;

/**初始化空棧**/

void initstack(stack *s)

/**判斷是否為空棧**/

int stackempty(stack s)

/**返回棧頂元素**/

void gettop(stack s,data *d)

}/**向棧頂插入新元素 入棧**/

void pushstack(stack *s,data d)

/**從棧頂刪除元素 出棧**/

void popstack(stack *s,data *d)else

}/**清空棧**/

void clearstack(stack *s)else

}/**列印棧內資訊**/

void printstack(stack s)else }}

/**檢查右括號與棧頂元素是否匹配**/

int match(data r,data s)else if(r.c=='}'&&s.c=='else if(r.c==']'&&s.c=='[')else

}/**括號匹配**/

void checkmatch(char *m,stack *s)':

case ']':

if(stackempty(*s))

gettop(*s,&s);

r.c = *m;

if(match(r,s))else

default:

*m++;

} }if(stackempty(*s))else

}void main()

資料結構 鏈棧實現括號匹配

最近在學資料結構,所以發的大多數都是關於資料結構的題 括號匹配原來用動態規劃做的一道題,現在老師要用棧來實現,用就用吧,還不讓用函式,只能用鏈棧,不開森 很簡單的思路,如果是 就看棧頂元素是否匹配,匹配就往下操作,如果表示式完了,棧不為空,不匹配 如果棧空了,表示匹配 下面是 的實現 include...

資料結構(二) 棧及實現 括號匹配

一 棧的概念與特點 一種特殊的線性表,它的插入和刪除運算均在同一端進行。這一端被稱為棧頂,另一端為棧底,插入稱為進棧,刪除稱為出棧。有後進先出的性質。棧頂top相當於順序表中的size,即元素個數。關於順序表可以參考資料結構 一 順序表及實現 注 沒有a n 這個元素。n是元素的數量 二 棧的操作及...

括號匹配 資料結構 棧 C

在程式設計當中我們只會用到三種括號 圓括號 方括號和花括號 編譯器在編譯的時候會檢查括號是否正確匹配。例如 都是合法的匹配。但是 則是不合法的匹配。請編寫乙個程式來判斷輸入的括號序列是否合法。輸入測試資料由多組,每組資料有一行,為 組成的序列,長度不超過1000 輸出對於每組資料輸出一行,如果是合法...