#include
#include /* 要包含這個標頭檔案*/
#include /* 要包含這個標頭檔案*/
#define error 0
#define ok 1
#define ture 1
#define false 0
#define overflow -1
#define init_stack_size 10
#define stackincrement 10
typedef char selemtype ; /* 下面處理的是字串,不是 int */
typedef int status ;
typedef struct sqstack;
status initstack(sqstack *s) /*初始化乙個棧*/
s->top=s->base;
s->stacksize=init_stack_size;
return ok;
status push(sqstack *s,selemtype e) /*進棧操作*/
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}*s->top++=e;
return ok;
}status pop(sqstack *s,/*這裡應該用指標*/selemtype * e) /*出棧操作*/
status emptystack(sqstack s)/*判斷棧是否為空*/
status destroystack(sqstack *s) /*銷毀乙個棧*/
int main(int argc,char * argv) /*主函式*/
':if(emptystack(s))
pop(&s,&e);
if(e=='
case']':
if(emptystack(s))
pop(&s,&e);
if(e=='[')
break;
else
case')':
if(emptystack(s))
pop(&s,&e);
if(e=='(')
break;
else
default:
break;}}
if(!emptystack(s)||/*必須加上下面這個條件*/!marth)
printf("not match /n");
else
printf(" match/n");
destroystack(&s);
system("pause");
return 0;
}當初學完棧自己寫的 有些錯誤 tianyuan008幫我修改的 謝謝他 他也給我一些建議 總是對我啟發很大
希望他工作順利 天天高興
用棧實現括號匹配
假設只允許出現兩種括號 圓括號和方括號,其巢狀順序隨意,即不管 或 等都為正確匹配,但是形如 就成為錯誤的匹配。可以用 期待的緊急程度 的概念來描述 如 共8個括號,從左往右依次標代號為1 8,即第乙個 代號為1,第二個 代號為2,第三個 代號為3,依次類推 當計算機收到了第乙個括號後,期待它與第八...
用棧實現括號匹配
構造棧函式並用棧實現括號匹配 以下 include include include 建立乙個棧,用棧求出二進位制轉十進位制,轉八進位制,銷毀,清空,push,pop 用棧來求逆波蘭演算法 用字元來轉成雙精度變數 用棧來檢驗括號是否正確 建立乙個鍊錶棧,並具有插入,刪除操作 define initnu...
用棧解決括號匹配問題
define crt secure no warnings 1 include include include typedef char datatype define capacity 100 底層空間的總大小 typedef struct stack stack 初始化 void stackin...