图解
#include
#include
#include
#define N 100
#define mytype int
struct MyQueue
{
mytype data[N];//数组存储队列
int front;//拉屎
int rear;//吃东西
};
typedef struct MyQueue myQ;
//初始化
void init(myQ *p)
{
p->front = p->rear = 0;
memset(p->data,0,sizeof(mytype)*N);
}
void print(myQ *p)
{
if(isempty(p)==1)
{
return 0;
}else{
int i;
for(i=p->front;i
{
printf("%d",p->data[i]);
}
}
}
int isfull(myQ *p)
{
if(p->rear == N)
{
return 1;
}else
{
return 0;
}
}
int isempty(myQ *p)
{
if(p->front==p->rear)
{
return 1;
}else{
return 0;
}
}
void enQ(myQ *p,mytype insertdata)
{
if(isfull(p)==1)
{
return;
}else{
p->data[p->rear] = insertdata;
p->rear+=1;
}
}
mytype deQ(myQ *p)
{
if(isempty(p)==1)
{
return 0;
}
int index = (p->rear)-(p->front);
if(index==1)
{
return p->data[0];
}else{
int i;
// printf("\n index=%d",index);
for(i=0;i { p->data[i] = p->data[i+1]; } --p->rear; } //printf("\n index=%d",p->rear); return p->data[p->rear]; } mytype array_shift(myQ *p) { if(isempty(p)==1) { exit(1); } else{ int num = p->front; free(p->data[num]); return p->data[p->front++]; } } mytype array_pop(myQ *p) { if(isempty(p)==1) { return 0; }else{ int num = p->rear; free(p->data[num]); return p->data[--p->rear]; } } void main() { myQ my1;//创建结构体 init(&my1); enQ(&my1,1); enQ(&my1,2); enQ(&my1,3); enQ(&my1,4); printf("\npop =%d",array_pop(&my1)); printf("\nnumber=%d",array_shift(&my1)); printf("\n one=%d",array_shift(&my1)); printf("\n two = %d",array_shift(&my1)); printf("\n three = %d",array_shift(&my1)); system("pause"); } 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:大并发数据队列-创新互联
标题URL:http://cdkjz.cn/article/dsechs.html