대열 에 관 한 조작 (초기 화, 팀 이 꽉 찼 음 을 판단 하고 팀 에 합류 합 니 다)

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; }

좋은 웹페이지 즐겨찾기