请问这是队列还是栈?
#include<stdio.h>
#define Max 5
typedef struct sqstack
{
int str[Max];
int front,rear;
}stach;
int insert(stach*s,int x)
{
if(s->rear==Max-1)
return 0;
s->rear++;
s->str[s->rear]=x;
return 1;
}
int ensert(stach*s,int *x)
{
if(s->rear==s->front)
return 0;
s->front++;
*x=s->str[s->front];
return 1;
}
main()
{
int i,x;
stach s;
s.front=s.rear=-1;
for(i=0;i<Max;i++)
{
scanf("%d",&x);
insert(&s,x);
}
for(i=0;i<Max;i++)
{ ensert(&s,&x);
printf("%d ",x);
}
}
[解决办法]
尼玛,这是谁写的代码,看到我顿时凌乱了。。。
定义了一个叫栈的结构体,结构体里是一个队列!
完全没必要这样写,帮你修改一下,代码如下:
#include<stdio.h>#define Max 5 int str[Max]; int front,rear;int insert(int x){ if(rear==Max-1) return 0; rear++; str[rear]=x; return 1;}int ensert(int *x){ if(rear==front) return 0; front++; *x=str[front]; return 1;}main(){ int i,x; front=rear=-1; for(i=0;i<Max;i++) { scanf("%d",&x); insert(x); } for(i=0;i<Max;i++) { ensert(&x); printf("%d ",x); }}