Category: C/C++/자료구조

내가 정리하는 자료구조 06 - 힙(heap)

대표적인 데이터 구조8: 힙1. 힙 (Heap) 이란? 힙: 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진 트리(Complete Binary Tree) 완전 이진 트리: 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트리 힙을 사용하는 이유 배열에 데이터를 넣고, 최대값과 최소값을 찾으려면 O(n) 이 걸림 이에 반해,

내가 정리하는 자료구조 05 - 트리(Tree)

대표적인 데이터 구조7: 트리1. 트리 (Tree) 구조 트리: Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 트리는 connected acyclic graph구조로 즉, 1개 이상의 노드로 이루어진 유한 집합이다. 루트 노드(root)를 반드시 가진다. 트리를 구성하는 노드 간에 단순 경로가 존재 또는 루트노드를 제외하고

내가 정리하는 자료구조 04 - 해쉬 테이블

대표적인 데이터 구조6: 해쉬 테이블 (Hash Table)1. 해쉬 구조 Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 보통 배열로 미리

내가 정리하는 자료구조 03 - 시간복잡도

알고리즘 복잡도 표현 방법1. 알고리즘 복잡도 계산이 필요한 이유하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 1, -1 ->> 1 방법1: 정수값을 제곱한 값에 다시 루트를 씌우기 방법2: 정수가 음수인지 확인해서, 음수일 때만, -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를

내가 정리하는 자료구조 02 Linked List

대표적인 데이터 구조: 링크드 리스트 (Linked List)1. 링크드 리스트 (Linked List) 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 그렇기 때문에 미리 연결된 공간을 예약을 해놓아야 한다는 것이 단점! 링크드 리스트는 위와 같은 배열의 단점을 보완하고자 떨어진 곳에 존재하는 데이터를 화살표로

내가 정리하는 자료구조 01 Stack

Stack꼭 알아둬야 할 자료 구조: 스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐: FIFO 정책 -> 줄 세우기 스택: LIFO 정책 -> 책 쌓기 1. 스택 구조 스택은 LIFO(Last In, Fisrt

내가 정리하는 자료구조 00 (Node, List, Queue)

목표 기본 자료 구조/알고리즘 익히기 알고리즘 풀이를 위해, 기본적으로 알고 있어야 하는 자료구조와 알고리즘 정리 자료구조란? 용어: 자료구조 = 데이터 구조 = data structure 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해야

내가 정리하는 C/C++ 00

개발환경 구축하기C와 C++1) C++는 기본적으로 C의 기능을 확장한 형태의 프로그래밍 언어이다.2) 따라서 C 언어의 기능을 포함하고 있다는 점에서 C++프로젝트로 .C 확장자를 갖는 파일을 생성하여 코딩해도 정상적으로 동작한다. 개발환경 구축하기 나는 개인적으로 IDE(Integrated Development Environment) 중에서 Atom을