用棧實現括號匹配

2021-08-18 22:26:09 字數 898 閱讀 1603

構造棧函式並用棧實現括號匹配

以下**:

#include#include#include//建立乙個棧,用棧求出二進位制轉十進位制,轉八進位制,銷毀,清空,push,pop

//用棧來求逆波蘭演算法(用字元來轉成雙精度變數),用棧來檢驗括號是否正確

//建立乙個鍊錶棧,並具有插入,刪除操作

#define initnum 20

#define increasenum 5

typedef char elem;

typedef struct stack sqstack;

void initstack(sqstack*s)

void push(sqstack*s,elem e)

*(s->top) = e;

s->top++;//把s的棧頂上移一位

}//出棧,並獲得出棧的資料

void pop(sqstack*s, elem*e)

}void clearstack(sqstack*s)

int stacklen(sqstack*s)

void destroystack(sqstack*s)

s->base = s->top = 0;

s->stacksize = 0;

}//判斷括號是否匹配的函式

int isalign(sqstack*s) ':

pop(s, &temp);

if (temp == '

scanf("%c", &c);

} if ((s->top != s->base) || !temp)//當沒輸入字元或只輸入了半截括號時返回值為0

return 0;

return 1;

}int main()

用棧實現括號匹配

假設只允許出現兩種括號 圓括號和方括號,其巢狀順序隨意,即不管 或 等都為正確匹配,但是形如 就成為錯誤的匹配。可以用 期待的緊急程度 的概念來描述 如 共8個括號,從左往右依次標代號為1 8,即第乙個 代號為1,第二個 代號為2,第三個 代號為3,依次類推 當計算機收到了第乙個括號後,期待它與第八...

用棧實現括號匹配 python

python資料結構與演算法分析 第二版 用python實現棧,檔名為pystack.py user bin env python coding utf 8 假設列表尾部是棧頂端o 1 class stack def init self self.items defisempty self 判棧空 ...

棧和佇列 用棧實現括號匹配

一 棧匹配 思路 借助棧來實現括號的匹配,如果碰到的是三種左括號的話,將左括號進行入棧,以為需要匹配到括號肯定都是右括號於左括號進行匹配的,所以遇到左括號直接入棧就可以了。如果遇到右括號,需要進行匹配,如果目前棧中為空的話,直接返回false,因為這個括號很明顯的多出來了。如果不為空,將棧中的乙個元...