乱世小猫吧 关注:30贴子:515
  • 0回复贴,共1

这回是自己想的算法..智商好捉鸡

只看楼主收藏回复

#include<stdio.h>
#include<malloc.h>
typedef struct Queue{
int *pBase;
//int length;
int front;
int rear;}QUEUE;
void init(QUEUE *);
bool empty_queue(QUEUE *);
bool full_queue(QUEUE *);
bool out_queue(QUEUE *,int*);
bool en_queue(QUEUE *,int);
void traverse_queue(QUEUE *);
int main(void){
int val;
QUEUE Q;
init(&Q);
if(en_queue(&Q,1)==false) printf("入队失败,失败的元素为%d\n",1);
if(en_queue(&Q,2)==false) printf("入队失败,失败的元素为%d\n",2);
if(en_queue(&Q,3)==false) printf("入队失败,失败的元素为%d\n",3);
if(en_queue(&Q,4)==false) printf("入队失败,失败的元素为%d\n",4);
if(en_queue(&Q,5)==false) printf("入队失败,失败的元素为%d\n",5);
if(en_queue(&Q,6)==false) printf("入队失败,失败的元素为%d\n",6);
if(en_queue(&Q,7)==false) printf("入队失败,失败的元素为%d\n",7);
printf("入队完成:\n");
traverse_queue(&Q);
for(int i=0;i<8;i++){
if(out_queue(&Q,&val)){
printf("\n出队成功,出队的元素是%d\n\n",val);
}else
printf("出队失败!!");
traverse_queue(&Q);
}return 0;
}
void init(QUEUE *pQ){
pQ->pBase=(int *)malloc(sizeof(int)*6);
pQ->front =0;pQ->rear=0;return;
}bool en_queue(QUEUE *pQ,int val){
if(full_queue(pQ)){
return false;
}else{
pQ->pBase[pQ->rear]=val;
pQ->rear=(pQ->rear+1)%6;
return true;
}
}
bool full_queue(QUEUE *pQ){
if ((pQ->rear+1)%6==pQ->front){
return true;
}else
return false;
}
void traverse_queue(QUEUE *pQ){
int val;
val=pQ->front;
while(val!=pQ->rear){
printf("%d ",pQ->pBase[val]);
val=(val+1)%6;
}printf("\n");
return;
}
bool out_queue(QUEUE *pQ,int *p){
if(empty_queue(pQ)){
return false;
}else{
*p=pQ->pBase[pQ->front];
pQ->front=(pQ->front+1)%6;
return true;
}
}
bool empty_queue(QUEUE *pQ){
if(pQ->rear==pQ->front)return true;
elsereturn false;
}


IP属地:四川1楼2013-10-04 11:26回复