대열 에 관 한 조작 (초기 화, 팀 이 꽉 찼 음 을 판단 하고 팀 에 합류 합 니 다)
1635 단어 데이터 구조
#include
#include
#define MAX 10
enum s
{
QUEUE_EMPTY,
QUEUE_NOEMPTY,
QUEUE_FULL,
QUEUE_NOFULL,
IN_NO,
IN_OK,
OUT_NO,
OUT_OK
};
struct node
{
int front;
int rear;
int queue[MAX];
};
void init_queue(struct node *p)
{
p->front = p->rear = -1;
}
int empty_queue(struct node *p)
{
if(p->rear == p->front)
{
printf("queue is empty!
");
return QUEUE_EMPTY;
}
return QUEUE_NOEMPTY;
}
int full_queue(struct node *p)
{
if(p->rear == MAX-1)
{
printf("queue if full!
");
return QUEUE_FULL;
}
return QUEUE_NOFULL;
}
int IN_queue(struct node *p,int num)
{
if(full_queue(p) == QUEUE_FULL)
{
printf("queue is full,insert fail!
");
return IN_NO;
}
p->rear++;
p->queue[p->rear] = num;
return IN_OK;
}
int OUT_queue(struct node *p,int *num)
{
if(empty_queue(p) == QUEUE_EMPTY)
{
printf("queue is empty!out error!
");
return OUT_NO;
}
p->front++;
*num = p->queue[p->front];
return OUT_OK;
}
int main()
{
struct node *p = (struct node *)malloc(sizeof(struct node));
int i = 0;
init_queue(p);
for(i = 0;i < 5;i++)
{
if(IN_queue(p,i+1) != IN_NO)
{
IN_queue(p,i+1);
printf("p->queue[%d]:%d in to queue!
",i,p->queue[p->rear]);
}
}
int num = 0;
for(i = 0;i < 5;i++)
{
if(OUT_queue(p,&num) != OUT_NO)
{
OUT_queue(p,&num);
printf("%d
",p->queue[p->front]);
// printf("%d
",num);
}
}
if(empty_queue(p) == QUEUE_EMPTY)
{
printf("!
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.