티스토리 뷰
#include <stdio.h>
#include <string.h>
#define QUESIZ 5
void enqueue(char*,int*,int*,char);
char dequeue(char*,int*,int*);
void printQueue(char*,int*,int*); // 큐 내용 출력
void main(){
char queue[QUESIZ+1]; // 큐
int fr=0, rr=0; // 큐 포인터
enqueue(queue,&fr,&rr,'2');
//printf("<%s>\n",queue);
enqueue(queue,&fr,&rr,'0');
enqueue(queue,&fr,&rr,'0');
enqueue(queue,&fr,&rr,'6');
enqueue(queue,&fr,&rr,'5');
printf("\n");
printQueue(queue,&fr,&rr); // 큐 내용 출력
printf("------------\n");
dequeue(queue,&fr,&rr);
dequeue(queue,&fr,&rr);
dequeue(queue,&fr,&rr);
dequeue(queue,&fr,&rr);
dequeue(queue,&fr,&rr);
enqueue(queue,&fr,&rr,'1');
printQueue(queue,&fr,&rr); // 큐 내용 출력
enqueue(queue,&fr,&rr,'2');
printQueue(queue,&fr,&rr); // 큐 내용 출력
dequeue(queue,&fr,&rr);
enqueue(queue,&fr,&rr,'3');
printQueue(queue,&fr,&rr); // 큐 내용 출력
enqueue(queue,&fr,&rr,'4');
printQueue(queue,&fr,&rr); // 큐 내용 출력
printf("\n\n");
}
int modAdd(int a){
return (a+1) % (QUESIZ+1);
}
void enqueue(char *queue, int *fr, int *rr, char data){
if(*fr == modAdd(*rr)){ //[예외처리]Queue가 가득차면
printf("queue is full!\n"); //error 메세지
return;
}
printf("enuque[%c]!\n",data);
queue[*rr] = data;
*rr = modAdd(*rr);
printf("<%s>\n",queue);
}
char dequeue(char *queue, int *fr, int *rr){
char data;
if(*fr == *rr){
printf("queue is empty!\n");
return 0;
}
data = queue[*fr];
*fr = modAdd(*fr);
printf("\ndelete[%c]!\n",data);
printQueue(queue,fr,rr);
return data;
}
void printQueue(char *queue, int *fr, int *rr){ // 큐에 들어 있는 데이타를 모두 출력
int i = *fr;
if(*fr == *rr){
printf("queue is empty!\n");
return;
}else{
printf("queue = ");
}
while(*rr != i){
printf("[%c] ", queue[i]);
i = modAdd(i);
}
printf("\n");
}
- Total
- Today
- Yesterday
- code push
- 암호
- Stack
- Queue
- Windows 서비스 등록
- 443
- react-native
- sort
- 안드로이드
- Independentsoft
- Gradle
- array
- 개발 설정
- 스머핑
- docker
- setDoInput
- 링크드리스트
- insertion
- PoolingHttpClientConnectionManager
- call back
- 정렬
- 선 없이
- elasticsearch
- LinkedList
- 빌드 세팅
- 과거 버전 사용
- 그라파나
- java
- 젠킨스
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |