C 언어 는 동적 배열 을 사용 하여 순환 대기 열 을 실현 합 니 다.
(1)선언 변수
static int *queue;//
static int maxSize;//
static int head;//
static int tail;//
(2)대기 열 초기 화
//
void InitQueue(int size){
maxSize = size;
queue = (int *)malloc(size * sizeof(int));
head = 0;
tail = 0;
}
(3)대기 열 진입
//
void EnQueue(int value){
//
if ((tail + 1) % maxSize == head) {
printf(" ,
");
}else{
//
queue[tail] = value;
tail = (tail + 1) % maxSize;
}
}
(4)대기 열 나 가기
//
int DeQueue(){
int temp;
//
if (head == tail) {
printf(" ,
");
}else{
temp = head;
head = (head + 1) % maxSize;
}
return temp;
}
(5)대기 열 이 비어 있 는 지 판단
//
int IsEmpty(){
if (head == tail) {
printf("
");
return 1;
}
printf("
");
return 0;
}
(6)대기 열 이 가득 찼 는 지 판단
//
int IsFull(){
if ((tail + 1)% maxSize == head) {
printf("
");
return 1;
}
printf("
");
return 0;
}
(7)인쇄 대기 열 요소
테스트 코드
//
void PrintQueue(){
for (int i = head; i < tail; i++) {
printf("%d ",queue[i]);
}
printf("
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Red-Black Tree (4) 삽입(insert, insert_fix_up)레드-블랙 트리에서 새로운 노드를 삽입할 때, 새로운 노드는 항상 적색으로 입력한다. case 1: uncle node(12)색과 부모노드의 색이 모두 적색임을 확인.(case 1) target node를 20의 할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.