본문 바로가기

분류 전체보기612

심화 수업52일차 - Terrain Normal 보호되어 있는 글 입니다. 2023. 7. 10.
[C++/자료구조] 이진트리(Binary Tree) Tree : 트리 - 특징 1) 루트 노드를 제외한 모든 노드는 부모 노드가 있다 2) 하나의 루트 노드를 가진다 3) 노드는 0개 이상의 자식 노드를 가진다 4) 순환 구조를 가지지 않는다 - 장점 1) 계층적인 구조를 표현할 수 있으며, 검색과 삽입, 삭제가 용이하다 - 단점 1) 불균형한 트리는 탐색 시간이 느려진다 Complete Binary Tree : 완전 이진 트리 - 특징 1) 모든 노드가 꽉 찬 이진 트리 2) 마지막 레벨을 제외한 모든 레벨이 꽉 차있어야 한다 3) 마지막 레벨은 왼쪽부터 차레로 채워진다 4) 모든 노드는 왼쪽에서 오른쪽으로 채워져야 한다 - 장점 1) 배열로 구현할 때 간단하게 구현할 수 있다 - i번째 노드의 왼쪽 자식 노드는 2i 번째 노드 - i번째 노드의 오른쪽.. 2023. 7. 8.
[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.
[주말]24일차 - 자료구조(스택,큐,이진트리,힙,그래프) 보호되어 있는 글 입니다. 2023. 7. 8.