棧 括號配對

2021-07-24 16:05:45 字數 1627 閱讀 9899

#include #include #include #include typedef char datatype;

#include int match(datatype e, datatype ch);

void main()

'的括號表示式:\n");

gets(ch);

p = ch; //p指向輸入的括號表示式

while (*p) //判斷p指向的字元是否是字串結束標誌

': case ']':

case ')':

if (stackempty(s)) //如果是右括號且棧已空,說明不匹配

else

}default: //如果是其他字元不處理,直接將p指向下乙個字元

p++;

} }if (stackempty(s)) //如果字串行讀入完畢,且棧已空,說明括號序列匹配

printf("括號匹配.\n");

else

printf("缺少有括號.\n"); //如果字串行讀入完畢,且棧不空,說明括號序列不匹配

}int match(datatype e, datatype ch)

') return 1;

else

return 0;

}

/*linkstack.h函式*/

#include#include#include//typedef int datatype;

typedef struct node

lstacknode,*linkstack;

/*鏈棧初始化操作*/

void initstack(linkstack *top)

/*判斷鏈棧是否為空*/

int stackempty(linkstack top)

/*進棧操作*/

int pushstack(linkstack top, datatype e)

p->data = e;//指標p指向頭結點

p->next = top->next;

top->next = p;

return 1;

}/*出棧操作*/

int popstack(linkstack top, datatype *e)

top->next = p->next; //將棧頂結點與鍊錶斷開,即出棧

*e = p->data; //將出棧元素賦給e

free(p); //釋放p指向的結點

return 1;

}/*取棧頂元素*/

int getstack(linkstack top, datatype *e)

*e = p->data; //將p指向的結點元素賦給e

return 1;

}/*求表長操作*/

int lengthstack(linkstack top)

return count; //返回棧的長度

}/*銷毀鏈棧*/

void destorystack(linkstack top)

}

括號配對 c(棧)

輸入一行字串,都為括號,判斷是否匹配.只有 這些。輸入第一行k測試資料組數 之後1 k 1行為一行字串 長度 100 輸出yes or no 樣例輸入 3 樣例輸出 yesyes no include include include using namespace std stackx int ma...

括號配對問題 棧

時間限制 3 sec 記憶體限制 128 mb 提交 3 解決 2 提交 狀態 討論版 現在,有一行括號序列,請你檢查這行括號是否配對。第一行輸入乙個數n 0每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 3 no noyes 解題思路 用c 的庫函式,...

nyoj 括號配對問題(棧)

括號配對問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在,有一行括號序列,請你檢查這行括號是否配對。輸入 第一行輸入乙個數n 0 輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 nono ye...