기타 강좌

#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
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Simple Download Buttons file 아방스 2011.12.07 2969
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [정수형 상수] 제니스 2009.06.13 2989
C언어 소코반 따라만들기 준비 파일읽어배열에담기 정체불명 2012.01.21 2990
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - New Download Button file 아방스 2011.12.07 2992
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Sexy Green Download Button file 아방스 2011.12.07 2993
기타 색바꾸기 강좌 4 제니스 2008.06.24 3014
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Sticky 3D Buttons file 아방스 2011.12.07 3024
XpressEngine XE1.1.5로 업후 위젯들이 문제를 일으킬때 수정방법 아방스 2009.02.21 3033
기타 게임제작 관련 학과들 7 아방스 2009.03.12 3061
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [실수형 종류] 1 제니스 2009.06.13 3073
기타 포샵 빛나는 공 4 제니스 2008.06.22 3075
OSX (맥) tar 명령어로 압축하기 / 압축해제 사용법 및 옵션 설명 아방스 2014.11.17 3075
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [실수형 상수] 제니스 2009.06.13 3089
기타 그래픽 드라이버 삭제 및 재설치 방법 1 아방스 2009.05.28 3099
에프터 이펙트 [기초강좌] 애프터 이팩트의 워크플로우과 용어 설명 아방스 2012.09.12 3105
기타 슈팅게임만들기 95 명령어 해석 - 퍼옴 하늘바라KSND 2012.11.10 3105
기타 XNA로 게임만들기 - 1. 인사겸 소개 3 file 재훈군 2012.08.03 3116
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [include] 3 제니스 2009.06.13 3125
기타 [강좌][공식]타겟과 포인트와의 거리 계산 2 허걱 2009.02.14 3136
기타 아르시아 공략1 10 ⌒_⌒ 2008.08.17 3139
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19