永发信息网

请帮忙用c语言编写一个进栈、出栈、入队、退队、退队入栈、出栈入队的完整程序

答案:1  悬赏:70  手机版
解决时间 2021-03-01 12:43
请帮忙用c语言编写一个进栈、出栈、入队、退队、退队入栈、出栈入队的完整程序
最佳答案
进栈 出栈的,队列和栈极其相似,恰好以前做了栈的括号匹配的,给你贴上了
#include
#include
#define LENGTH 20
typedef struct
{
char*top ;
char*base ;
int length ;
}sqstack ;
int check(sqstack*p,char c);
int initstack(sqstack*p);
int push(sqstack*p,char c);
char pop(sqstack*p);
int print(sqstack*p);
int main(void)
{
sqstack*p=NULL ;
char c ;
int i=1,flag ;
p=(sqstack*)malloc(sizeof(sqstack));
initstack(p);
while((c=getchar())!='\n')
{
flag=check(p,c);
if(flag==1)
push(p,c);
if(flag==0)
pop(p);
if(flag==-1)
{
printf("%dinput error\t",i);
i++;
}
}
print(p);
free(p->base);
free(p);
getchar();
return 1 ;
}
int check(sqstack*p,char c)
{
char ch=*(p->top-1);
if(c>='*'&&c<='Z'||c>='a'&&c<='z')
return 3 ;
else if(c=='('||c=='['||c=='{')
return 1 ;
else if((ch=='('&&c==')')||(ch=='['&&c==']')||(ch=='{'&&c=='}'))
return 0 ;
else
return-1 ;
}
int initstack(sqstack*p)
{
while(!(p->base=(char*)malloc((LENGTH)*sizeof(char))))
continue ;
p->top=p->base ;
p->length=0 ;
return 1 ;
}
int push(sqstack*p,char c)
{
if(p->length>=LENGTH)
{
p->base=(char*)realloc(p->base,(LENGTH*2)*sizeof(char));
p->top=p->base+p->length ;
}
*p->top++=c ;
p->length++;
return 1 ;
}
char pop(sqstack*p)
{
char m ;
if(p->top==p->base)
{
printf("error");
exit(0);
}
m=*--p->top ;
p->length--;
return m ;
}
int print(sqstack*p)
{
char*q,c ;
int i=0 ;
q=p->base ;
while(ilength)
{ c=*(q+i);printf(" ");
putchar(c);
i++;
}
return 1 ;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
株洲市住房公积金管理中心醴陵管理部在哪里啊
阿莫西林舒巴坦钠是几线抗生素?
掷骰子.掷两枚正方体骰子,掷得的正面向上的两
谁知道全国那里有大量报废摩托车发动机,本人
中国移动4G+手机连锁卖场天汾指定专营店在哪
阿法海鲜楼柳市中心大道店地址有知道的么?有
上海富铭拍卖有限公司这个地址在什么地方,我
我在高德地图上用艺龙定了房间反不了怎么办
大余公安交警大队办证服务大厅在什么地方啊,
鞋厂里面大机部是干嘛的
白条猪肉批发价格
延根据意思组词引进
百福食品批发怎么去啊,有知道地址的么
模仿趵突泉写一篇泉州十八景的作文
百度钱包出现 存在账户风险,无权限进入下一步
推荐资讯
吊扇在木头上如何固定
中国移动通信宏建社区服务店地址在哪,我要去
阿辉石锅鱼地址有知道的么?有点事想过去
恒天财富怎么样
求一首节奏感很强的歌
2008年末某市常住人口约为26490000人,将2649
佳木斯广播这都是什么台???
如何遇到合适的人?
新繁高架桥这个地址在什么地方,我要处理点事
从插座引出火线接射灯,只要一打开射灯开关,插
我老公在农村信用社贷有款我现在还可以再去贷
怎样去除101胶水
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?