본문 바로가기
기초과목/자료구조

[C/C++] 큐 (Queue) 구현

by 지수코딩 2019. 5. 21.

풀 코드는 아래 링크에서 확인하실 수 있습니다!

(피드백 환영합니다!)

https://github.com/Sjisoo/DataStructure/blob/master/Queue/Queue.c

 

Sjisoo/DataStructure

Contribute to Sjisoo/DataStructure development by creating an account on GitHub.

github.com

 

 

구조체 생성!

 

element: 현 노드에 담고 있는 값

*link: 다음 노드(현 노드 아래에 쌓여있는)의 주소 값

주의: Stack에서 link는 이전 노드였다면, Queue에서는 다음 노드를 가리킨다!

 

 

Queue에 데이터 push(저장)

 

push라는 함수를 사용해 새로운 데이터를 queue에 추가

 

                                                    1. 가장 최근에 저장된 데이터의 주소(rear)의 link 포인터에

                                                        새로 업데이트된 rear(newTail)의 link 포인터에 저장

                                                    2. rear에 newTail 할당(업데이트)

 

 

노드 생성 함수

 

makeNode라는 함수로 새로운 값을 갖는 노드 생성

 

 

Queue에서 데이터 pop(삭제)

 

front와 rear에 데이터가 존재한다면

가장 먼저 저장된 데이터 주소(front)의 link 포인터를 front에 할당

&& 기존 front(originFront)에 할당된 메모리 해제

 

 

Queue에서 맨 위 데이터 출력하는 함수

(C++에서 front() 역할)

 

 

Queue에 저장된 모든 데이터 top부터 끝까지 출력

반응형

댓글