要求:
用棧的基本操作實現括號匹配演算法,要求至少包括兩種型別的括號。
下面的**是我的一些思路,並不算最優的,大家學習就好啦
#include#include#define max 5 //初始建立棧的容量
#define add 5 //棧滿時新增的容量
typedef char elemtype;
typedef struct
sqstack;
initstack(sqstack *s) //建立乙個容量為 max 的空棧
s->top = s->base;
s->max = max;
}push(sqstack *s, elemtype e) //進棧
*(s->top) = e;
s->top++;
}pop(sqstack *s, elemtype *e) //出棧
}int stacklen(sqstack s) //計算棧的容量
int main()
」\n");
while ((q = getchar()) != '#')
else if ((q == ')') && (--(p).top == '('))
else if ('
else if ((q == '}') && (--(p).top == '
else if ('[' == q)
else if ((q == ']') && (--(p).top == '['))
else if ('<' == q)
else if ((q == '>') && (--(p).top == '<'))
}count = stacklen(p); //迴圈結束後再判斷棧是否還有元素
if (!count) //flag為0時代表已經全部匹配出棧
printf("yes\n");
else
printf("no\n");
return 0;
}
注:**僅供學習使用
用棧實現括號匹配
假設只允許出現兩種括號 圓括號和方括號,其巢狀順序隨意,即不管 或 等都為正確匹配,但是形如 就成為錯誤的匹配。可以用 期待的緊急程度 的概念來描述 如 共8個括號,從左往右依次標代號為1 8,即第乙個 代號為1,第二個 代號為2,第三個 代號為3,依次類推 當計算機收到了第乙個括號後,期待它與第八...
用棧實現括號匹配
構造棧函式並用棧實現括號匹配 以下 include include include 建立乙個棧,用棧求出二進位制轉十進位制,轉八進位制,銷毀,清空,push,pop 用棧來求逆波蘭演算法 用字元來轉成雙精度變數 用棧來檢驗括號是否正確 建立乙個鍊錶棧,並具有插入,刪除操作 define initnu...
用棧實現括號匹配 python
python資料結構與演算法分析 第二版 用python實現棧,檔名為pystack.py user bin env python coding utf 8 假設列表尾部是棧頂端o 1 class stack def init self self.items defisempty self 判棧空 ...