게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
원형큐 안쓰고 큐를 써볼려다가..
게시물ID : programmer_11901짧은주소 복사하기
작성자 : nipa0711
추천 : 0
조회수 : 382회
댓글수 : 2개
등록시간 : 2015/07/05 22:16:31
배열 전체 크기가 5라 할때
 
head가 2를 가리키고 있으면,
 
0,1 값이 비워있어도 이용이 안되는걸
 
매번 for문등으로 당기자니 느릴께 뻔해서
 
 
이리저리 하고 보니
 
 
결론은 원형큐가 되었습니다.
 
젠장..
 
 
 
 
 
 
 
#include <stdio.h>
#define QUEUE_SIZE 10
int queue[QUEUE_SIZE];
int head = 0;
int tail = -1;
int queue_size = 0;
int insert(int num)
{
 if (queue_size >= QUEUE_SIZE)
 {
  printf("queue full!\n");
  return 0;
 }
 tail = (tail + 1) % QUEUE_SIZE;
 queue_size++;
 queue[tail] = num;
 printf("%d 삽입됨\n", num); 
}
void exec()
{
 if (queue_size == 0)
 {
  printf("queue empty!\n");
  return 0;
 }
 printf("[%d]\n", queue[head]);
 queue[head] = NULL;
 head = (head + 1) % QUEUE_SIZE;
 queue_size--;
}
int main(void)
{
 int input;
 while (1)
 {
  printf("\ninput number: ");
  scanf_s("%d", &input);
    
  if (input==0)
  {
   exec();
  }
  else if (input==-1)
  {
   return 0;
  }
  else
  {
   insert(input);
  }
 }
 return 0;
}
 
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호