728x90

자료구조 4

(Data_structure) Deque

Deque는 Double-end Queue로 배열과 유사하지만 벡터와는 달리 양쪽 끝에서 삽입과 삭제가 가능하다 Doubly Linked List에 배열의 요소가 들어가 있다고 생각하면 이해하기 편하다. Deque의 ADT는 push_back() : 뒤쪽에 data 추가 push_front() : 앞쪽에 data 추가 pop_back() : 뒤쪽의 data 삭제 pop_front() : 앞쪽의 data 삭제 at() : 인덱스를 통해 접근 operator[] : 배열과 같이 인덱스를 통해 접근 resize() : 크기 조절 size() : 원소의 개수 return empty() : 비어있는지 확인 아래는 사용 예시이다. #include #include using namespace std; int main..

Data_structure 2023.12.07

(Data_Structure) Priority Queue

Priority Queue는 각 요소가 특정 우선 순위를 가지고 있는 큐이다. 높은 우선순위를 가진 data가 낮은 우선 순위를 가진 data보다 먼저 처리된다. Priority Queue의 ADT를 보면 insert(): 우선순위 큐에 새로운 data를 추가 deleteMax() or deleteMin() : 우선순위가 가장 높은(낮은) 항목을 제거 getMax() or getMin(): 우선순위가 가장 높은(낮은) 항목을 return isEmpty() : 비어있는지 확인 size() : 우선순위 큐에 저장된 data의 개수를 return clear() : 우선순위 큐의 모든 data 제거 Priority Queue 같은 경우 작업 스케줄링, 그래프 알고리즘, 네트워크 라우팅 등에서 활용된다. 구현 방..

Data_structure 2023.12.07

(Data_structure) Queue

1. Queue Queue는 FIFO구조 즉, 최근에 입력된게 나중에 나오는 구조이다. Queue의 ADT를 보면 enqueue(): 가장 뒤에 data input dequeue(): 가장 앞에 있는 data output front(): 큐의 가장 앞에 있는 항목 return isempty(): 큐가 비어있는지 확인 size(): 큐에 저장된 data 수 return 밑에 코드는 queue를 활용해서 구현한 예시 코드이다. #include #include using namespace std; int main() { // 큐 생성 queue myQueue; // Enqueue (추가) myQueue.push(10); myQueue.push(20); myQueue.push(30); // Size (크기) c..

Data_structure 2023.12.07

(Data_structure) Stack

Stack은 LIFO구조 즉, 최근에 입력된게 먼저 나오는 구조이다. Stack에는 기본적으로 .push(), .pop() 함수가 존재하고 필요에 따라 .top(), empty() 가 있다. push는 말 그대로 이 구조에 입력하는 것이고 pop은 제일 위에 있는 것을 꺼내는 것이다. top은 제일 위에 있는 것에 대한 정보를 출력하고 empty는 현재 비어있는지 확인하는 함수이다. 밑에 코드는 Wikipedia에서 공유된 C 코드이다. 다음은 윈도우 기준의 C언어로 제작된 스택의 예제이다. /* Stack Example */ #include #include #include int Stack[10]; int top=-1; int push(int dat); int pop(void); int printsta..

Data_structure 2023.09.25
728x90