本篇文章给大家谈谈括号完美匹配c语言,以及c语言实现括号匹配对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、c语言的括号匹配?2、c语言的括号匹配问题3、C语言编程:括号完美匹配;下面这个程序哪里错了4、括号匹配问题,要求用C语言完成,下面是源代码,求大神解决…5、C语言问题 括号配对6、括号匹配检验(c语言)
c语言的括号匹配?
你这个代码。
其实就是在现有的链表尾部,新建并添加这个节点。
这里你没有说明,但从代码内容可以看出bplist就是就是接收了传递进来的链表头节点指针(aplist)。然后通过while循环,bplist就指向了链表的尾节点。
而anode是新建的节点的指针,这个新节点内存空间是通过malloc函数动态申请的。所以你每次调用这个函数都会申请一个新的节点内存。
最后,bplist-next=anode;就是将这个节点添加到链表最后。
其实这样写,运行效率不高,因为每次新增节点,该函数都要遍历一遍链表。可以在函数参数那里直接把尾结点指针传递进来(尾节点指针初始为NULL或者指向首节点)。然后在函数最后将新增的节点作为返回值。外部函数用尾节点指针接收返回值。这样就不需要遍历了。
c语言的括号匹配问题
#include stdio.h
#include stdlib.h
int main()
{
int i,count;
char ch[10001],ch1[10001];
while(gets(ch)!=NULL)
{
count=-1;
for(i=0;ch[i]!=’\0′;i++)
{
if(ch[i]=='(‘||ch[i]=='[‘||ch[i]==”||ch[i]=='{‘)
{
ch1[++count]=ch[i];
}
else
{
if(ch[i]-ch1[count]3)
{
count–;
}
else
{
break;
}
}
}
if(count==-1)
printf(“YES\n”);
else
printf(“NO\n”);
}
return 0;
}
C语言编程:括号完美匹配;下面这个程序哪里错了
#include stdio.h
int main()
{
int i,j,n,top=-1;
char s[1010],w[1010];//w为括号的栈,top为栈顶
scanf(“%d”,n);
getchar();
for(i=0;in;i++)
{
gets(s);
for(j=0;s[j]!=’\0′;j++) //遍历每一个字符串
{
if(s[j]=='(‘ || s[j]=='[‘) //如果是左括号,将其入栈
w[++top] = s[j];
else if(s[j]==’)’) //如果是右小括号,判断是否匹配
{
if(w[top] == ‘(‘)
top–;
else
{
printf(“no\n”);
break;
}
}
else if(s[j]==’]’) //如果是右中括号,判断是否匹配
{
if(w[top] == ‘]’)
top–;
else
{
printf(“no\n”);
break;
}
}
}
if(s[j]==’\0′) //如果循环没有在中间跳出,检查栈顶位置,最终检查是否匹配
{
if(top==-1)
printf(“yes\n”);
else
printf(“no\n”);
}
}
return 0;
}
你写的逻辑混乱,思路也不清晰。看看我的吧。
括号匹配问题,要求用C语言完成,下面是源代码,求大神解决…
你这一题其实就是要用栈的思路去解决,定义一个char数组作为栈去存储差不多就可以了
具体代码如下
char cs[200];//定义字符串栈
memset(cs, 0x00 ,sizeof(cs));//初始化栈
int count=0;//count就是合法长度的计数
int p=-1;//p就是指向栈顶的数,当p=-1时表示栈为空
int len=strlen(inp);//获取输入字符串的长度
if (len == 0)//当长度是0时表示是空字符串,则计数count是0
count=0;
else for (int i=0;ilen;i++)
{
if ((p==-1)((inp[i] == ‘)’)||(inp[i] == ‘]’)))
continue;
else if ((inp[i] == ‘[‘)||(inp[i] == ‘(‘))
{
p++;
cs[p]=inp[i];
}
else if ((inp[i] == ‘]’)(cs[p] == ‘[‘))
{
p-=1;
count+=2;
}
else if ((cs[p] == ‘(‘)(inp[i] == ‘)’))
{
p-=1;
count+=2;
}
}
C语言问题 括号配对
#include iostream
#include stack
#include string
using namespace std;
int main()
{
int N;
cinN;
while(N–)
{
string a;
stackchar s;
cina;
for(int i=0;ia.size();i++)
{
if(a[i]=='(‘||a[i]=='[‘)
s.push(a[i]);
else if(a[i]==’)’)
{
if(!s.empty()s.top()=='(‘)
s.pop();
else s.push(a[i]);
}
else if(a[i]==’]’)
{
if(!s.empty()s.top()=='[‘)
s.pop();
else s.push(a[i]);
}
}
if(s.empty())
cout”Yes”endl;
else
cout”No”endl;
}
return 0;
}
ACM的题吧,简单。我这个程序可以判断两种括号的匹配。你这个才一种
括号匹配检验(c语言)
函数返回值类型不能是Status,Status只是泛指类型,至于具体用什么类型,你应该根据实际情况而定。
比如你的第一个函数Status InitStack(SqStack S) ,
可以改为int InitStack(SqStack S) ,其它的你自己根据情况定了。
括号完美匹配c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言实现括号匹配、括号完美匹配c语言的信息别忘了在本站进行查找喔。