본문 바로가기

자료구조9

[C++/자료구조] 큐(Queue) Queue : 큐 - 특징 1) 선입선출(FIFO) 구조를 가지는 자료구조 2) 삽입은 enqueue, 삭제는 dequeue 연산을 사용 - 장점 1) 구현이 간단하다 2) 작업 처리 대기열, 메세지 전달 등에서 유용하다 - 단점 1) 큐의 크기가 고정되어 있을 때, 큐가 가득 차면 더 이상 데이터를 추가할 수 없다 Queue.h #pragma once void DoQueue(); class Queue { public: Queue(); bool Empty(); bool Full(); int GetSize(); void Enqueue(DataType data); void Dequeue(); DataType GetFront(); private: int Front; int Rear; int Size; Data.. 2023. 7. 8.
[C++/자료구조] 스택(Linked List) Stack : 스택 - 특징 1) 후입선출(LIFO) 구조를 가지는 자료구조 2) 삽입은 Push, 삭제는 Pop 연산을 사용 - 장점 1) 구현이 간단하다 2) 함수 호출의 역추적, 수식 계산, 문자열 역순 등에서 유용하다 - 단점 1) 중간 원소에 접근하기 어렵다 Stack.h #pragma once void DoStack(); class Stack { public: Stack(); bool IsEmpty(); bool IsFull(); void Push(DataType data); DataType Pop(); DataType Peek(); private: int Top; DataType Data[MAX_SIZE]; }; Stack.cpp #include "../../stdafx.h" #include.. 2023. 7. 8.
[C++/자료구조] 연결 리스트(Linked List) & 양방향 연결 리스트(Double Linked List) Linked List : 연결 리스트 - 특징 1) 노드와 포인터로 이루어진 선형 자료구조 2) 노드는 데이터와 다음 노드를 가리키는 포인터로 구성된다 3) 크기가 가변적이므로 동적 메모리 할당과 함께 사용되기도 한다 - 장점 1) 삽입, 삭제가 용이하며, 데이터의 크기가 가변적일 경우 유용하다 2) 데이터를 읽는 것보다 데이터를 추가, 삭제하는게 빠르다 - 단점 1) 데이터를 찾는 데 걸리는 시간이 선형적으로 증가하기 때문에 탐색 속도가 느리다 2) 중간에 있는 노드를 삭제하면 메모리 낭비가 발생할 수 있다 Linked List.h #pragma once void DoLinkedList(); void PrintList(); class LLN // Linked List Node { public: stat.. 2023. 7. 8.