用棧寫括號匹配

2021-04-07 06:56:42 字數 1468 閱讀 8321

#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...