1樓:
標頭檔案:(另存為seqstack.h)
typedef struct
seqstack;
void stackinitiate(seqstack *s) /*初始化順序堆疊s*/
int stacknotempty(seqstack s)
/*判順序堆疊s非空否,非空則返回1,否則返回0*/
int stackpush(seqstack *s, datatype x)
/*把資料元素值x壓入順序堆疊s,入棧成功則返回1,否則返回0 */
else
}int stackpop(seqstack *s, datatype *d)
/*彈出順序堆疊s的棧頂資料元素值到引數d ,出棧成功則返回1,否則返回0*/
else
}int stacktop(seqstack s, datatype *d)
/*取順序堆疊s的當前棧頂資料元素值到引數d ,成功則返回1,否則返回0*/
else
}括號問題
#include
#include
#include
#define maxstacksize 100
typedef char datatype;
#include "seqstack.h"
void expiscorrect(char exp, int n)
//判斷有n個字元的字串exp左右括號是否配對正確
else if(exp[i] == ']' && stacknotempty(mystack)
stackpop(&mystack, &c); //出棧
else if(exp[i] == ']' && stacknotempty(mystack)
else if(exp[i] == '}' && stacknotempty(mystack)
else if(((exp[i] == ')') || (exp[i] == ']') || (exp[i] == '}'))
&& !stacknotempty(mystack))
}if(stacknotempty(mystack))
printf("左括號多於右括號!\n");
else
printf("左右括號匹配正確!\n");
}void main(void)
"; //測試例子1。左右括號配對次序不正確
char b = "(()))abc"; //測試例子2。右括號多於左括號
char c = "(()()abc"; //測試例子3。左括號多於右括號
char d = "(())abc"; //測試例子4。左右括號匹配正確
int n1 = strlen(a);
int n2 = strlen(b);
int n3 = strlen(c);
int n4 = strlen(d);
expiscorrect(a, n1);
expiscorrect(b, n2);
expiscorrect(c, n3);
expiscorrect(d, n4);
}二者放於同一目錄下即可
2樓:
貼**啊, 截圖上來不好幫你試
C語言用棧編寫括號匹配
記住一座城 define stack size 160 棧空間大小 define flase 0 define true 1 typedef int bool 棧定義 typedef struct stack void initializing stack s 初始化棧為空 void destory...
c語言中char str括號裡為什麼是
這表示的是字元陣列,128是字元陣列長 不是字串長 char str 456 也是可以的。其中每個成員的值在 128 127之間,str 0 str 455 每個值不能超過127.如果超過,則擷取低位位元組存貯。題目裡是統計輸入字串中小寫英文字母個數,開頭用的就是這個。這個就好理解了。ascii 就...
幫忙把這段C語言程式加上註釋
struct student insert struct student head,struct student stu 此函式功能是 為一個由student物件組成的連結串列插入元素.引數head是連結串列頭,指向第一個連結串列元素.引數stu是要插入物件的指標.else 連結串列不為空,則插入 ...