问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 括号是否匹配。

发布网友 发布时间:2022-05-08 03:51

我来回答

4个回答

热心网友 时间:2023-11-25 05:22

先按顺序取出所有的括号.然后循环删除_相邻的_差为一或二的_点.最后如果表空则匹配.
单向链表:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LEN 80
typedef struct list{
char node;
struct list* next;
}list,*plist;

void iniList(plist);
int isEmpty(plist);
int listAppend(plist,char);
int delBracketsFormList(plist);

int main(int argc,char* argv[]){
char test[LEN];
int i;
list a;
plist p;
p=&a;
iniList(p);
scanf("%80s",test);
for (i=0;i<LEN;i++){
switch(test[i]){
case '[': case']': case'{': case'}': case'(': case')':
listAppend(p,test[i]);
break;
default:continue;
}
}
delBracketsFormList(p);
if (isEmpty(p)){
printf("括号匹配!\n");
}
else
printf("括号不配对!\n");
return 0;
}

void iniList(plist aplist){
aplist->next=NULL;
aplist->node='\0';
}

int isEmpty(plist aplist){
return aplist->next==NULL?1:0;
}

int listAppend(plist aplist,char a){
plist bplist=aplist,anode;
while (bplist->next){
bplist=bplist->next;
}
anode=(plist)malloc(sizeof(list));
if (!anode)exit(-1);
anode->node=a;
anode->next=NULL;
bplist->next=anode;
return 0;
}
int delBracketsFormList(plist aplist){
plist temp;
int has=1;
if (isEmpty(aplist))
return 0;
while(has){
has=0;
temp=aplist;
while (temp->next){
if(temp->next->next){
if((temp->next->next->node - temp->next->node == 1)||(temp->next->next->node - temp->next->node == 2)){
temp->next = temp->next->next->next;
has=1;

}
else
temp = temp->next;
}
else
temp =temp->next;
if(!has)break;
}

}
return 0;
}

热心网友 时间:2023-11-25 05:23

先按顺序取出所有的括号.然后循环删除_相邻的_差为一或二的_点.最后如果表空则匹配.
单向链表:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LEN 80
typedef struct list{
char node;
struct list* next;
}list,*plist;

void iniList(plist);
int isEmpty(plist);
int listAppend(plist,char);
int delBracketsFormList(plist);

int main(int argc,char* argv[]){
char test[LEN];
int i;
list a;
plist p;
p=&a;
iniList(p);
scanf("%80s",test);
for (i=0;i<LEN;i++){
switch(test[i]){
case '[': case']': case'{': case'}': case'(': case')':
listAppend(p,test[i]);
break;
default:continue;
}
}
delBracketsFormList(p);
if (isEmpty(p)){
printf("括号匹配!\n");
}
else
printf("括号不配对!\n");
return 0;
}

void iniList(plist aplist){
aplist->next=NULL;
aplist->node='\0';
}

int isEmpty(plist aplist){
return aplist->next==NULL?1:0;
}

int listAppend(plist aplist,char a){
plist bplist=aplist,anode;
while (bplist->next){
bplist=bplist->next;
}
anode=(plist)malloc(sizeof(list));
if (!anode)exit(-1);
anode->node=a;
anode->next=NULL;
bplist->next=anode;
return 0;
}
int delBracketsFormList(plist aplist){
plist temp;
int has=1;
if (isEmpty(aplist))
return 0;
while(has){
has=0;
temp=aplist;
while (temp->next){
if(temp->next->next){
if((temp->next->next->node - temp->next->node == 1)||(temp->next->next->node - temp->next->node == 2)){
temp->next = temp->next->next->next;
has=1;

}
else
temp = temp->next;
}
else
temp =temp->next;
if(!has)break;
}

}
return 0;
}

热心网友 时间:2023-11-25 05:23

呵呵,我们也要编这个程序,冒似是数据结构的题,我也不会做,过来看一哈子,嘿嘿

热心网友 时间:2023-11-25 05:23

呵呵,我们也要编这个程序,冒似是数据结构的题,我也不会做,过来看一哈子,嘿嘿

热心网友 时间:2023-11-25 05:24

我想是不是用栈做是不是更方便一些呢?
具体做法我就不做了,给个建议而已。判断是左括弧的就进栈,遇到右的直接出栈一个。判断最后栈是否为空。

热心网友 时间:2023-11-25 05:24

楼上(回答者:zhoube)高见,是否该用三个栈,分别匹配[]、()、{}?

热心网友 时间:2023-11-25 05:23

我想是不是用栈做是不是更方便一些呢?
具体做法我就不做了,给个建议而已。判断是左括弧的就进栈,遇到右的直接出栈一个。判断最后栈是否为空。

热心网友 时间:2023-11-25 05:24

楼上(回答者:zhoube)高见,是否该用三个栈,分别匹配[]、()、{}?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在RLC电路中,谐振频率为___同期为___谐振条件为___? 电磁振荡并联 RLC振荡回路的谐振频率与振荡特性 佛手柑水培还是干放 中山市美派电器有限公司怎么样? 成都美派电器有限公司怎么样? 两条不同品牌的DDR3内存条可以一起用吗 驾驶证的牡丹卡多长时间能办下来 新衣服必须用洗衣液洗才能去甲醛吗? 梦见逛街被偷抢 2024年买什么品牌的运动男鞋比较好? 栈的应用 括号匹配 数据结构(C)实现括号匹配程序的问题 c++括号匹配检验 括号匹配和检查程序 括号匹配 基本算法 如何用c语言实现括号匹配的问题? c语言的括号匹配问题 括号的匹配问题(C语言) 括号匹配(c++) 数据结构:括号匹配问题。 括号匹配 用数据结构写 求代码 括号匹配问题 括号匹配 如何为button的属性onclick传参 求VBA代码改变按钮属性 请问“CommandButton1_Click”这个是按钮的哪个属性? 请教Button的属性 CausesValidation vc编程中动态设置button按钮的属性 excel选项按钮属性问题? 使一个按钮具有开关二项功能,用basic语言如何实现? 怎么调用括号匹配函数, 别人拿了我的工程居间费但是工程没做成,钱退给我了,算诈骗吗? 工程居间费一般怎么付 我天生就黑那能变白吗 不小心在网易云音乐点了今后不再推荐,结果取消不了 没有推荐的视频 无底深渊的环境与特性 无底深渊的简介 狄摩高根的仆人 DND血战是怎么发生的? 我已经25岁了,但是为什么我到现在连一个最简单的魔法都施放不出来? 深渊的特征 《魔剑骑士》txt全集下载 深渊的环境与特性 养老保险和医保单位20多年没给交了现在自己还能交吗本人男50集体职工二十多年 二十多年了”两不找”,单位没给交任何保险,马上要退休了,怎么办? 工作二十年单位没交养老保险,怎么办工作二十多年单位没交养老保险 工作二十年单位没交养老保险,怎么办 在企业干了二十年没给交养老保险怎么办 上班二十年单位没有交养老保险现在还在单位上班已经六十岁了交不进去应该怎么?_百度问一问 我在单位工作20年了,单位一直没给缴纳养老保险,有什么办法制约单位吗?