기타 강좌

#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
에프터 이펙트 [기초강좌] 애프터 이팩트의 워크플로우과 용어 설명 아방스 2012.09.12 3105
에프터 이펙트 [기초강좌] cs6 애프터 이팩트의 고성능 작업을 위한 PC최적화 아방스 2012.09.12 4338
에프터 이펙트 에펙 단축키 깔끔한정리~ ^^ file 아방스 2012.09.13 6657
에프터 이펙트 [CS6] After Effects Warning: logged one error 에러 발생시 대처법 file 아방스 2012.10.23 5176
Vegas Pro 같은 공간에 같은 인물 등장 하도록 편집 2 file 아방스 2012.11.06 2941
C언어 C# 병렬처리! 스레드 사용하기 1 file 꿈달 2012.11.08 4129
기타 슈팅게임만들기 95 명령어 해석 - 퍼옴 하늘바라KSND 2012.11.10 3105
플러그인 [에펙] 피부톤 보정 플러그인 Beauty Box file 아방스 2013.01.07 8062
어도비 프리미어 [어도비 프리미어 CS6] 흔들림 보정 어렵지 않아요~. file 아방스 2013.03.13 11548
에프터 이펙트 에펙 글자 등장 효과 - Create a Stormy, Electric Type Reveal 3 file 아방스 2013.07.05 4668
시네마4D Jawset TurbulenceFD v1.0 Rev 1160 For Cinema 4D – Win64 file 아방스 2013.09.24 1410
시네마4D Navié Plants & Effex Krakatoa Edition v2.00.20 For Cinema 4D R14 – R15 – Win64 file 아방스 2013.09.24 1951
기타 [루비] 한글 사용하기 2 자연철학의수학적원리 2013.10.25 1475
기타 [루비][GUI]윈도우 창을띄우기 file 자연철학의수학적원리 2013.10.25 2070
기타 [루비][GUI] 버튼 만들기 file 자연철학의수학적원리 2013.10.25 1440
기타 [루비][GUI] 버튼에 이벤트 연결하기 file 자연철학의수학적원리 2013.10.25 1370
기타 [루비][GUI]텍스트입력상자 만들기 자연철학의수학적원리 2013.10.25 1345
기타 [루비][GUI] 텍스트입력박스와 버튼, 이벤트 연결 file 자연철학의수학적원리 2013.10.25 1432
기타 [루비][네트워크] 간단한 서버 만들기 자연철학의수학적원리 2013.10.25 1510
기타 [루비][네트워크] 간단한 서버테스트하기 file 자연철학의수학적원리 2013.10.25 1419
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19