본문 바로가기

C++/자료구조와 알고리듬7

3. Tree, Binary Search Tree 3.1 Tree3.1-1 Binary Tree Note) 이진 트리    좀 더 자세한 내용은 여기에서 참고.#include #include using namespace std;templateclass STree{ struct SNode { public: SNode(const T& InData) : Data(InData) , LeftChild(nullptr) , RightChild(nullptr) { } public: T Data; std::unique_ptr LeftChild; std::unique_ptr RightChild; };public:.. 2022. 11. 4.
2. Sort, Search, Stack, Queue 2.1 Sort  Note) 정렬의 종류    버블 정렬 / 퀵 정렬 / 선택 정렬 / 삽입 정렬 / 병합 정렬 / 힙 정렬   Note) 정렬의 차이    시간 복잡도 / 공간 복잡도 / 안정성 / 직렬 Vs. 병렬   Note) 정렬 알고리듬의 안정성    똑같은 키 값을 가진 데이터들의 순서가     바뀌지 않으면 안정적인 정렬.    바뀌면 불안정한 정렬.    안정성이 보장 안되어도 대부분은 문제가 되진 않음.    그래서 잘 모르고, 생각도 안하는 부분.      Note) 안정성이 문제가 되는 경우    정렬 기준이 되는 정렬 키 값이 실제 데이터와 다를 경우.    ex. std::map과 같은 자료구조의 정렬.     ex. 구조체 혹은 클래스의 일부 멤버로만 정렬하는 경우.   Note.. 2022. 10. 23.
1. Recursive Function, Array 1.1 재귀함수1.1-1 단순 재귀  Ex)#pragma once#include void SimpleRecursion(int _nCount){ printf("%d\n", _nCount); if (1 == _nCount) { return; } SimpleRecursion(_nCount - 1);}   Ex)     재귀함수를 이해하기 위한 가장 정확한 방법. 글쓴이는 이걸 "전개도를 펼친다"라고 생각함.    3차원의 도형을 전개해서 2차원으로 차원을 낮추는 것과 같음. 즉, 한 눈에 보기 편해서 쉬워짐.#include void recursive(int count){ if (4 == count) { return; } recur.. 2022. 10. 21.