日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

括号匹配编码c语言,用c语言实现括号匹配算法

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 括号匹配编码c语言,用c语言实现括号匹配算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*括號匹配算法*/

#include

#define FALSE 0

#define TRUE 1

#define MAXSIZE 100

typedef char DataType;

//定義棧

typedef struct stack{

DataType data[MAXSIZE];

int top;

}SeqStack;

//初始化棧

void InitStack(SeqStack *s)

{

s->top = -1;

}

//判斷棧是否為空

int IsEmpty(SeqStack *s)

{

if(s->top == -1)

return TRUE;

return FALSE;

}

//判斷棧是否已滿

int IsFull(SeqStack *s)

{

if(s->top == MAXSIZE-1)

return TRUE;

return FALSE;

}

//出棧

void PopStack(SeqStack *s, DataType temp)

{

if(IsEmpty(s))

return;

temp = s->data[s->top];

s->top --;

}

//壓棧

void PushStack(SeqStack *s,DataType temp)

{

if(IsFull(s))

return;

s->top ++ ;

s->data[s->top]=temp;

}

//判斷兩個括號是否匹配

int Match(char chone,char chtwo)

{

if(chone=='(' && chtwo==')')

return TRUE;

else if(chone == '{' && chtwo == '}')

return TRUE;

else if(chone == '[' && chtwo == ']')

return TRUE;

else

return FALSE;

}

//取棧頂元素

void GetTopStack(SeqStack *s , DataType *temp)

{

if(IsEmpty(s))

return;

*temp = s->data[s->top];

}

void BracketMatch(char *str)

{

SeqStack s;

int i;

char ch;

InitStack(&s);

for(i=0 ; str[i]!='\0';i++ )

{

switch(str[i]){

case '(':

case '[':

case '{':

PushStack(&s,str[i]);

break;

case ')':

case ']':

case '}':

if(IsEmpty(&s))

{

printf("右括號多余\n");

return;

}else{

GetTopStack(&s,&ch);

if(Match(ch,str[i]))

PopStack(&s,ch);

else{

printf("\n對應的右括號不同類\n");

return;

}/*if*/

}/*else*/

}/*for*/

}/*switch*/

if(IsEmpty(&s))

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

else

printf("\n左括號多余\n");

}

int main()

{

char str[MAXSIZE];

int i;

printf("Input the bracket string: \n");

scanf("%s",str);

BracketMatch(str);

return 1;

}

總結

以上是生活随笔為你收集整理的括号匹配编码c语言,用c语言实现括号匹配算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。