C++ Algorithm & Study

    [C++] 10 - 기초 문법 공부 일지(Tree)

    BinarySearchTree 노드의 왼쪽 하위 트리에는 노드의 키보다 작은 키가있는 노드만 포함 노드의 오른쪽 하위 트리에는 노드의 키보다 큰 키가있는 노드만 포함 왼쪽 및 오른쪽 하위 트리도 각각 이진 검색 트리 중복 된 키 허용X 10, 15, 5, 9, 3, 2, 11 Node Create parent, left, right, key class Node { public: Node(int key) : parent(nullptr), left(nullptr), right(nullptr), key(key) {} ~Node() {} public: Node* parent; Node* left; Node* right; int key; }; BSTree Create #pragma once class BSTree..

    [C++] 9 - 기초 문법 공부 일지(Graph)

    Graph 인접 리스트 연결된 edge만 넣어줌 메모리 많은 소모X, 느린 접근 #include "pch.h" int main() { // 인접 리스트 vector adjacentInt; adjacentInt.resize(5); adjacentInt[0] = { 1, 5 }; adjacentInt[1] = { 2, 4 }; adjacentInt[2] = { 4 }; adjacentInt[4] = { 2 }; } 인접 행렬 메모리 소모 심함 빠른 접근 #include "pch.h" int main() { // 인접 행렬 vector adjacentBool(6, vector(6, false)); adjacentBool[0][1] = true; adjacentBool[0][5] = true; adjacentB..

    [C++] 8 - 기초 문법 공부 일지(Stack)

    Stack .LIFO - 후입선출 규칙을 따르는 자료 구조 Stack.h #pragma once #include #include using namespace std; template class Stack { public: voidpush(const T& value) { _container.push_back(value); } voidpop() { vector newVector(_container.size() - 1); for (int i = 0; i < _container.size() - 1; i++) newVector[i] = _container[i]; _container.clear(); _container = newVector; } T&top() { return _container[_container...