Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 컴퓨터 그래픽스
- vector
- 운영체제
- 아두이노
- 자료구조
- LineTracer
- html
- Arduino
- priority_queue
- 라인트레이서
- Array
- map
- Visual Micro
- 아두이노 소스
- 수광 소자
- Algorithm
- c++
- stl
- 시스템프로그래밍
- 아두이노 컴파일러
- list
- arduino compiler
- 통계학
- directx
- set
- Deque
- Stack
- queue
- C언어
- WinAPI
Archives
- Today
- Total
Kim's Programming
[C++/템플릿으로 만드는 자료구조] 덱(Deque) 본문
C++/템플릿으로 만든 덱(Deque)입니다. iostream을 인클루드해야 이용할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | template <typename Type> class Node { public: Type Item; Node<Type> *Prev; Node<Type> *Next; }; template <typename Type> class Deque { private: Node<Type> *header; Node<Type> *tailer; public: Deque(); ~Deque(); void Input_Head(Type Item); void Input_Tail(Type Item); Type Output_Head(); Type Output_tail(); void printing(); }; template<typename Type> Deque<Type>::Deque() { this->header = NULL; this->tailer = NULL; } template<typename Type> Deque<Type>::~Deque() {} template<typename Type> void Deque<Type>::Input_Head(Type Item) { Node<Type> *New = new Node<Type>; if (this->header == NULL) { this->header = New; this->tailer = New; New->Item = Item; New->Next = NULL; New->Prev = NULL; return; } this->header->Prev = New; New->Next = this->header; this->header = New; New->Item = Item; New->Prev = NULL; } template<typename Type> void Deque<Type>::Input_Tail(Type Item) { Node<Type> *New = new Node<Type>; if (this->tailer == NULL) { this->header = New; this->tailer = New; New->Item = Item; New->Next = NULL; New->Prev = NULL; return; } New->Item = Item; this->tailer->Next = New; New->Prev = this->tailer; this->tailer = New; New->Next = NULL; } template<typename Type> Type Deque<Type>::Output_Head() { if (this->header == NULL) { printf("The Deque is empty\n"); return 0; } int return_value; Node<Type> *Cur = NULL; return_value = this->header->Item; this->header->Next->Prev = NULL; Cur = this->header; this->header = this->header->Next; delete(Cur); return return_value; } template<typename Type> Type Deque<Type>::Output_tail() { if (this->tailer == NULL) { printf("The Deque is empty\n"); return 0; } int return_value = 0; Node<Type> *Cur = NULL; return_value = this->tailer->Item; this->tailer->Prev->Next = NULL; Cur = this->tailer; this->tailer = this->tailer->Prev; delete(Cur); return return_value; } template<typename Type> void Deque<Type>::printing() { Node<Type> *Cur = this->header; while (Cur != NULL) { std::cout << Cur->Item << " "; Cur = Cur->Next; } std::cout << std::endl; } | cs |
덱(Deque)는 STL에서 이용시에 deque를 인클루드하여 이용하게됩니다.
같이보기
2015/12/16 - [Programming/자료구조] - [C로 만드는 자료구조]큐(Queue) - 배열
2015/12/16 - [Programming/자료구조] - [C로 만드는 자료구조]큐(Queue) - 동적
2015/12/16 - [Programming/자료구조] - [C로 만드는 자료구조]덱(Deque) - 동적
'Programming > Data Structure' 카테고리의 다른 글
[C++/템플릿으로 만드는 자료구조] 이진탐색트리(Binary Search Tree) (0) | 2016.01.18 |
---|---|
[C++/템플릿으로 만드는 자료구조] 큐(Queue) (0) | 2016.01.18 |
[C++/템플릿으로 만드는 자료구조] 스택(Stack) (0) | 2016.01.18 |
[C++/템플릿으로 만드는 자료구조] 이중연결원형리스트(Doubly Circular Linked List) (0) | 2016.01.18 |
[C++/템플릿으로 만드는 자료구조] 단순원형연결리스트(Circular Linked List) (0) | 2016.01.18 |