#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct{
char data[100];
int top;
int bottom;
}stack;
stack *StackCreate(){
stack *p=(stack*)malloc(sizeof(stack));
if(p==NULL)
return 0;
p->bottom=p->top=0;
return p;
}
void StackInput(stack *p,char str){
p->data[p->top]=str;
p->top++;
}
char StackOutput(stack *p){
if(p->top!=p->bottom)
{
char str;
str=p->data[p->top-1];
p->top--;
return str;
}
return '\0';
}
void StackPrint(stack *p)
{
if(p->top==p->bottom)
{
printf("None");
}
else
{
while(p->top!=p->bottom){
printf("%c",p->data[p->bottom]);
p->bottom++;
}
}
}
int main(){
int i;
stack *p;
char s1;
char a[100];
int n=0;
printf("输入一个字符串:");
scanf("%s",&a);
p=StackCreate();
for(i=0;i<strlen(a);i++)
{
if(p->top!=p->bottom)
{
s1=StackOutput(p);
if(a[i]!=s1)
{
StackInput(p,s1);
StackInput(p,a[i]);
}
}
else
{
StackInput(p,a[i]);
}
}
printf("消除后的字符:\n");
StackPrint(p);
}
这个就是队列的设计思路,你可以看一下我写的队列
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m