대열 학습 노트 은행 번호 매기기 프로그램
//
//CycQueue.h
#define QUEUEMAX 15
typedef struct
{
DATA data[QUEUEMAX]; //
int head; //
int tail; //
}CycQueue;
CycQueue *CycQueueInit ()
{
CycQueue *q;
if(q=(CycQueue *)malloc(sizeof(CycQueue))) //
{
q->head = 0; //
q->tail = 0; //
return q;
}else
return NULL; //
}
void CycQueueFree(CycQueue *q) //
{
if(q!=NULL)
free(q);
}
int CycQueueIsEmpty(CycQueue *q) //
{
return (q->head==q->tail) ;
}
int CycQueueIsFull (CycQueue *q) //
{
return ((q->tail+1)%QUEUEMAX == q->head) ;
}
int CycQueueIn(CycQueue *q,DATA data) //
{
if((q->tail+1)%QUEUEMAX == q->head)
{
printf(" !
");
return 0;
}else{
q->tail = (q->tail+1)%QUEUEMAX; //
q->data[q->tail] = data;
return 1;
}
}
DATA *CycQueueOut (CycQueue *q) //
{
if(q->head == q->tail)
{
printf(" !
");
return NULL;
}else{
q->head=(q->head+1)%QUEUEMAX;
return &(q->data[q->head]);
}
}
int CycQueueLen(CycQueue *q) //
{
int n;
n=q->tail-q->head;
if(n<0)
n=QUEUEMAX + n;
return n;
}
DATA *CycQueuePeek(CycQueue *q) // 1
{
if(q->head==q->tail)
{
printf(" !
");
return NULL;
}else{
return &(q->data[(q->head+1)%QUEUEMAX]);
}
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct
{
int num; //
long time ; //
}DATA ;
#include "CycQueue.h"
int num; //
void add(CycQueue *q ) //
{
DATA data;
if(!CycQueueIsFull(q)) //
{
data.num=++num;
data.time=time(NULL);
CycQueueIn(q,data);
}
else
printf("
, !
");
}
void next(CycQueue *q) //
{
DATA *data;
if(!CycQueueIsEmpty(q)) //
{
data = CycQueueOut(q); //
printf("
%d !
",data->num);
}
if(!CycQueueIsEmpty(q)) //
{
data = CycQueuePeek(q); //
printf(" %d , !
",data->num);
}
}
int main()
{
CycQueue *queue1;
int i,n;
char select;
num = 0; //
queue1=CycQueueInit(); //
if(queue1==NULL)
{
printf(" !
");
getch();
return 0;
}
do{
printf("
:
");
printf("1.
");
printf("2.
");
printf("0.
");
fflush(stdin);
select=getch();
switch(select)
{
case '1':
add(queue1);
printf("
%d !
",CycQueueLen(queue1));
break;
case '2':
next(queue1);
printf("
%d !
",CycQueueLen(queue1));
break;
case '0':
break;
}
}while(select != '0');
CycQueueFree(queue1); //
getch() ;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useEffect 안에서의 리턴??인스타 클론하다가 또 다시 배운 기능이다. useEffect안에서 리턴을 한다?? 찾아보니 componentWillUnmount와 같은 효과를 낸다는 것이다. useEffect안에서 return을 하면 정리의 개념으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.