-
2. 간단한 큐 구현하기 (C++)자료구조/Queue 2018. 9. 26. 18:33
C++로 간단하게 큐를 구현해봤습니다.
Node 클래스
-Set_link : next노드를 연결
-Get_data : 노드의 데이터 반환
-Get_next : 노드의 다음 링크 반환
Queue 클래스
-push : tail에 노드 추가 후, tail을 현재 추가한 노드로
-pop : head 노드 반환 후, head를 다음 노드로
-front : head 반환
-size : 현재 용량 반환
-empty : 비어있으면 true 반환
다음엔 STL queue의 사용법을 알아보겠습니다.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include <iostream>using namespace std;class Node {private:int data;Node* next;public:Node();Node(int data) : data(data) {}void Set_link(Node* node) {next = node;}int Get_data() {return data;}Node* Get_next() {return next;}};class Queue {private:Node* head;Node* tail;size_t used;size_t capacity;public:Queue() {head = nullptr;tail = nullptr;}void push(Node* node) {if(head == nullptr) {head = node;tail = node;}else {tail->Set_link(node);tail = node;}used++;}void pop() {if(used == 0) {cout << "Queue underflow" << endl;return;}Node* node = head;head = head->Get_next();used--;delete[] node;}Node* front() {return head;}bool empty() {if(used == 0)return true;return false;}size_t size() {return used;}};int main() {Queue q;Node* first = new Node(1);q.push(first);Node* second = new Node(2);q.push(second);Node* third = new Node(3);q.push(third);while(!q.empty()) {cout << "size : " << q.size() << endl;Node* node = q.front();q.pop();cout << node->Get_data() << endl;}return 0;}cs 반응형'자료구조 > Queue' 카테고리의 다른 글
1. Queue 란? (0) 2018.09.26