構造棧函式並用棧實現括號匹配
以下**:
#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,因為這個括號很明顯的多出來了。如果不為空,將棧中的乙個元...