Views 466 Votes 2 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
[ 특징 ]
스택과는 달리 입구와 출구가 서로 다르다.
먼저 들어온 데이터가 먼저 빼어낼 수 있다.
FIFO( FIRST-IN FIRST-OUT ) 구조라고 한다.
큐의 동작은 PUT과 GET동작이 있다.
자료를 빼내는 동작은 GET이라고 하며, 자료를 넣는 동작은 PUT이라고 한다.
PUT동작시에는 자료를 항상 뒤( REAR )부터 넣는다.
GET동작을 통해서 자료를 빼어 낼때는 앞( FRONT )로 빼어낸다.
윈도우 메시지 관리 등에 사용.

[ 개념도 ]



[ 예제소스 ]
#include
#include
int front, rear;
int queue[5];

void init_queue()
{
front = rear = 0;
}
초기화입니다.

int get()
{
int get_num;
if( front > 4 )
{
printf("언더플로우 발생 n");
get_num = -1;
}else
get_num = queue[front++] ;
return get_num;
}

GET함수입니다. GET는 데이터를 삭제하는 함수가 아닙니다. 정보를 불러들이는 함수인데요. 처음 입력한 자료부터 하나씩 출력할 수 있지만, 이전 데이터가 삭제되는 것은 아닙니다 ( 삭제라도 별 상관은 없지만... )
큐배열의 FRONT( 앞, 말하자면 현재 출력할 데이터 위치입니다 )위치의 데이터를 리턴시키고 FRONT값을 하나 증가시킵니다. 그러니 다음번엔 변수 FRONT + 1 자리의 데이터가 GET되겠죠.

int put( int put_num )
{
int flag = 1;
if( rear > 4 )
{
printf("~~오버플로우 발생~~n");
flag = 0;
}else 
queue[rear++] = put_num; 
return flag;
}

GET과 비슷하게 현재위치에 데이터를 입력하고 변수 REAR을 증가시킵니다.

void print_queue()
{
int i;
for( i = front ; i < rear ; i++ )
{
printf("%d", queue[i] );
}
putch('n');
}

순서대로 출력을 합니다.

void main()
{

printf(" 배열을 이용한 큐 프로그램 입니다 n");
int select_num;
int put_num;
int get_num;
init_queue();
while( 1 )
{

printf(" 1) put  2) get  3) data print 4) Quit! n" );
printf(" 숫자를 선택해주세요 : ");  scanf("%d", &select_num );
if( select_num > 3 )      
break;
else{
 switch( select_num )
 {
  case 1 :
     printf("풋 숫자를 입력해주세요 => "); scanf("%d", &put_num );
     if( put( put_num ) )   
     printf("풋(put)을 실행 했습니다n");
     break;
  case 2 :
       get_num = get();
    if( get_num > 0 )
     printf("겟(get)을 실행 했습니다, get한 값은 %d 입니다n", get_num);
    break;
  case 3 :
    print_queue();
    break;
 }  
}
}
printf("프로그램을 종료합니다n");
getch();
}

엔진입니다.



[예제프로그램]◁다른이름으로 저장하세요 ㅡ_ㅡ;
?

List of Articles
No. Category Subject Author Date Views
701 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 951
700 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 990
699 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 1039
698 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1302
697 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1794
696 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 1009
695 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 990
694 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 751
693 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 1041
692 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 1160
691 언어/기타 페인터(코럴) 브러쉬 세팅 공유 :) 8 file 샤이귤군 2015.03.28 1690
690 언어/기타 유화재료 & 기법 살짝 팁 공유 (매우 깁니다 -3-) 11 file 샤이귤군 2015.03.28 989
689 언어/기타 픽사에서 텍스쳐 꽁짜로 뿌림ㅋ 8 사람님(대회참가) 2015.03.26 990
688 언어/기타 멀티해상도에 따른 속도와 가속도 값의 조절 1 MiDtics2 2013.01.13 939
687 언어/기타 [Android] 멀티스크린 노하우 2 MiDtics2 2012.10.27 1592
686 언어/기타 [js] 코드 압축 걸음마 2 1 2012.06.12 1204
685 언어/기타 [css] css 겉핥기 핥핥 1 file 2012.05.03 1068
684 언어/기타 [css, js] form - select안의 option들에 스타일 적용하기 4 file 2012.04.28 5556
683 언어/기타 게임,개발기획의 기초 5 Grand 2011.08.01 2970
682 언어/기타 지형설정에서 원경(앞, 뒤)가 가지는 역할 file Dicky 2011.07.28 2554
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 36 Next
/ 36


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)