풀 코드는 아래 링크에서 확인하실 수 있습니다!
(피드백 환영합니다!)
https://github.com/Sjisoo/DataStructure/blob/master/Queue/Queue.c
구조체 생성!
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부터 끝까지 출력
'기초과목 > 자료구조' 카테고리의 다른 글
[C/C++] 데크 덱 (Deque) 구현 (0) | 2019.05.23 |
---|---|
[C/C++] 스택 (Stack) 구현 (0) | 2019.05.21 |
[C/C++] 다중 연결 리스트 (Double Linked List) 구현 (0) | 2019.05.20 |
[C/C++] 단일 연결 리스트 (Single Linked List) 구현 (0) | 2019.05.20 |
선형 자료 구조 (0) | 2019.05.18 |
댓글