기타 강좌

#include <stdio.h>
#include <stdlib.h>

int front, rear;
int queue[5];
enum {PUT = 1, GET, INIT, PRINT, EXIT};

void init_queue()
{
     front = rear = 0;
}

int put(int nPutNum)
{
     int state = 1;
    
     if(rear > 4){
     printf("OVERFLOW n");
     state = 0;
     }

     else{
     queue[rear++] = nPutNum;
    
     printf("PUTn");
     }
     return state;
}

int get()
{
    int nGetNum = 0;
   
    if(front > 4){
             printf("UNDERFLOW n");
             nGetNum = -1;
    }
   
    else{
    nGetNum = queue[front++];
   
    printf("GETn");
}
    return nGetNum;
}

void printQueue()
{
     int i;
    
     printf("front -> rear n");
    
     for( i = front; i<rear; i++)
          printf("%d  ", queue[i]);
    
     puts("");
}

void printMenu()
{
     printf("SELECT : 1)PUT 2)GET 3)INIT 4)PRINT 5)EXIT n");
}

int Selection()
{
    int nSelection;
    scanf("%d", &nSelection);
    return nSelection;
}

main()
{
      int nSelect = 0;
      int nPutNum = 0;
     
      while(1)
      {
              printMenu();
              nSelect = Selection();
             
              switch(nSelect)
              {
                             case PUT :
                                  printf("Input Num : ");
                                  nPutNum = Selection();
                                  puts("");
                                  put(nPutNum);
                                  break;
                            
                             case GET :
                                  get();
                                  break;
                                 
                             case INIT :
                                  init_queue();
                                  break;
                            
                             case PRINT :
                                  printQueue();
                                  break;
                                 
                             case EXIT :
                                  exit(-1);
                                 
                             default :
                                     printf("Wrong Number!! n");
                                     break;
              }
      }
}
             

 

흐음...이번엔 배열을 이용해 큐를 구현해 봤습니다...

이번에도 틀린것이 있다면 정중하게 태클~

Comment '3'
  • ?
    강아지포스 2009.06.13 22:27

    이건 C공부하시는 분들을 위해 코드만 참고하시라고 올려놓은 것이기 때문에

    코드 설명은 올리지 않겠습니다.

  • ?
    제니스 2009.06.13 22:29
    구름! 난 너를 존경한다 - Zennys ,,,
  • ?
    Last H 2009.06.17 19:41

    밑 글의 댓글에 이어 다시한번 큐에 대해 말한다면!!

    밑의 글의 댓글에선 스택에 대해 말했습니다. 

    "가장 처음에 예약한 사람이 가장 나중에 서비스를 받는다!" -- 이 이야기와도 일맥 상통하는게 바로 스택이었죠.

    이 얼마나 불공평하단 말입니까!!!!! 왜 내가 1등으로 물건 신청했는데 꼴지로 물건을 받아!!

    그래서 큐가 해결합니다. queue !!   TV에서 PD들이 외치는 ready~~ 큐! 에서의 바로 그 큐!

    이 큐란 녀석의 키포인트는 바로 이것! FIFO!!  (first in first out)

    당연히 젤앞에 줄서있는 사람이 제일 먼저 영화관에 들어가야 하는것 아니겠습니까?

    그 공공질서 속의 사람들의 줄서기가 바로 큐입니다.


List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
기타 윈도우 XP에서 16비트 도스가 실행이 안될때 스크립트 2008.07.25 3567
C언어 [C언어] 산술연산자, 대입연산자, 증감연산자 란? 2 [Dark].Angel 2009.01.14 3541
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Wide Green Button file 아방스 2011.12.07 3526
C언어 소코반 실행파일+소스+스크린샷 file 정체불명 2012.01.25 3523
C언어 [C언어] for문과 while문에 대해 [Dark].Angel 2009.01.14 3521
시네마4D Cinema4D 맵핑, 매터리얼 기초 메뉴얼 아방스 2010.08.18 3517
기타 VirtualDub, Avanti, AviSynth를 사용한 초보적인(?!) DVD -> 동영상 파일 변환법. Alkaid 2012.08.27 3480
기타 XNA로 게임만들기 - 3. 자신만의 라이브러리를 만들자. 7 file 재훈군 2012.08.03 3454
기타 해커스쿨 F.T.Z서버에 대해 궁금하신 분들은 글올려주세요... - 하늘 - 2009.08.03 3428
기타 게임 엔진 中 [렌더링 엔진] 비교 3 아방스 2011.10.24 3425
어도비 프리미어 [프리미어프로] 시계 애니메이션 만들기 file 아방스 2017.01.08 3410
시네마4D [나무 의자 만들기] Model A Wooden Chair In Cinema4D 1 file 아방스 2011.04.18 3404
기타 그림판으로 아이콘 만들기 4 검은별 2009.07.13 3395
XpressEngine 댓글 알림 기본 체크 하기. 아방스 2012.01.04 3395
시네마4D 시네마4D R12 버전 한글 도움말 파일 아방스 2011.04.16 3362
기타 - 하늘 -의 리눅스 book! [ <2>리눅스를 배우려면?][수정] 8 file - 하늘 - 2009.08.01 3357
에프터 이펙트 붓 칠해지는 느낌의 자막 1 file 아방스 2011.02.27 3340
기타 오류해결법 2-비스타로 알피지 만들기 XP게임하기 3 21thcentuary 2008.09.29 3324
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - PSD Download Buttons file 아방스 2011.12.07 3279
기타 PCSX2 자체 캡처기능으로 캡처한 동영상 인코딩하기 file Alkaid 2012.09.09 3257
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19