반응형 분류 전체보기227 [6] Queue 함수 구현하기 - deQueue deQueue의 경우에는 맨 앞 데이터를 빼내는 빼내는 것입니다. 이번 함수에서는 제거만을 구현했고, 이후에 다룰 Generic Queue에서는 데이터를 반환하는 것 까지 구현을 해보겠습니다. 우선 이번 코드를 설명하자면, 우리가 큐에 데이터를 어떤 형식으로 저장하고있죠? 바로 NODE입니다. 그렇다면 우리가 할 작업은 데이터를 제거하는 것인데 그러기 위해서는 NODE포인터를 하나 선언해주어야합니다. 데이터 형식이 NODE 포인터 이기 때문이죠 Tip) 여기서 enqueue와 다르게 NODE 포인터를 생성하고 동적할당을 해주지 않는 이유는? → dequeue에서는 데이터를 쓸 필요가 없어요! 그냥 읽어서 지워주기만 하면 되니까! 그렇다면 선언한 노드 포인터에 queue가 가리키는 front 를 넣음으로서.. 2020. 10. 6. [5] Queue 함수 구현하기 - enQueue 자 enqueue에 대해서 설명드리겠습니다. 우선 queue에 데이터를 넣는 작업이기 때문에, 매개변수로 queue와 data를 입력받습니다. 그리곤 NODE를 생성해주는데요, 우리는 데이터를 쓰는 작업을 할 것이기때문에 포인터에 공간을 할당해주어야합니다. 그것을 동적할당 = malloc이라고 합니다. NODE를 생성하고 동적할당을 해준뒤 초기화를 해주어야합니다. new_node->data 는 입력받은 데이터를 그대로 넣어주면됩니다. new_node->next 는 항상 NULL로 초기화를 해줍니다. queue에 아직 넣은것이 아니라 데이터를 저장할 기본 세팅을 하는 과정이니깐요 그리곤 이제 queue에 방금 생성한 node를 넣습니다. 이때 경우의 수가 두가지 인데요 1. queue가 비어있을경우 2. .. 2020. 10. 6. [4] Queue 함수 구현하기 - CreateQueue 첫 번째로 구현할 함수는 Queue를 생성하는 함수이다. 마트에서 장을 보기위해선 당연히 장바구니를 먼저 집어야 되지 않는가? 우선 코드를 먼저 보자. 1 2 3 4 5 6 7 8 9 10 11 QUEUE* creatQueue(void) { QUEUE* queue = (QUEUE*)malloc(sizeof(QUEUE)); if (queue) { queue->front = NULL; queue->rear = NULL; queue->count = 0; } return queue; } Colored by Color Scripter cs 우선 이 코드를 설명하기 이전에 우리는 메인함수에서 이 함수를 이렇게 사용할 것이다. 1 QUEUE* queue = createQueue(); cs 매개변수도 없이 그냥 사용만.. 2020. 9. 22. [3] C언어로 Queue(큐) 구현하기 앞선 시간에 Queue의 구조적인 설명은 끝마쳤다. 이제는 실제로 코딩을 해보자. 우선 모든 데이터는 NODE라는 묶음으로 이루어 진다고 했다. NODE = Data + Link(포인터) 1 2 3 4 5 typedef struct Node { int data; struct Node* next; }NODE; cs 기본적으로 구조체를 만들고, int 형 정보를 저장하는 NODE를 만든것이다. 특이점 하나는, 선언한 구조체 안에, 그 구조체포인터가 다시한번 선언되고 있는점이다. 여기서 하나 알아 두어야 할 것은 구조체는 자기자신을 포함할 수 있다. typedef 를 이용해서 선언하지 않는 이유는, typedef는 구조체에서 완전히 빠져나간 후에 사용할 수 있기 때문이다. 자 그럼이제 큐의 뼈대를 생성해보자... 2020. 9. 22. [2] Queue(큐)란 무엇인가? Queue(큐)는 선형리스트 이다. 쉽게 비유하자면 물건을 사기위해 줄을 선다고 생각하면 쉽다. 먼저 줄을 선사람은 앞으로 가게 되고, 먼저 나가게된다. 뒤늦게 줄을 선 사람은 맨 뒤로 위치하며, 앞사람이 모두 볼일이 끝난 후에야 자신도 볼일을 볼 수 있다. 즉, 출구와 입구가 따로 존재한다는 것이다. 그대로 영어로 표현을 하자면 "First In First Out" 선 입 선 출 실제 생활에서 큐가 사용되는 것은, 1. 줄서기 2. 티켓예매 3. 키보드작동 4. 컴퓨터 시스템 . . . 등이 있다. 실제로 큐를 구현하는데 사용되는 Main Operations(함수)은 1. Enqueue : 데이터 입력 2. Dequeue : 데이터 추출 3. Createqueue : 큐생성 4. Destroyqueue.. 2020. 9. 21. 이전 1 ··· 35 36 37 38 다음 반응형