자료구조
-
[n532] GraphAI 부트캠프 2022. 2. 7. 14:13
그래프 기본 개념 노드들이 서로 연결되어 루프 구조를 띌 수 있다. 그래프와 트리의 쓰임은 다소 다르다. 예를 들어, 그래프는 object간의 관계성을 표현할 때 쓰인다. 트리는 계층을 표현할 때 유용하다. 하지만, 그래프는 계층 개념이 존재하지 않는다. Directed Graph 그래프가 한 쪽 방향으로 흐르는 그래프를 의미한다. 방향에 따라 흐르기 때문에 순서가 있고, 마지막 노르 (Leaf Node)가 존재한다. 아래 그림은 Directed graph이고, 이 화살표가 양방향일 경우는 Bidirectional Graph(양방향 그래프)이다. Undirected Graph 무방향성이지만 인접한 노드끼리 서로 상호 교환 관계이다. Cyclic and Acyclic Graphs Cyclic graph ..
-
[n521] Data StructureAI 부트캠프 2022. 1. 25. 09:44
자료구조 선형 자료구조 : 데이터들을 일렬로 나열된 형태로 저장할 때 사용 (정적)배열, 동적 배열, 연결 리스트 배열 : 반드시 선언할 때 크기를 결정 => 크기는 고정적, 절대 변경 불가. 메모리 상에서 배열의 원소들이 연속적으로 붙어 있다. 장점 : 인덱스를 통해서 빠르게 접근 가능 (Read가 쉽다) 단점 : 크기가 고정적이므로 그 크기보다 많은 데이터가 들어오면 혼란스럽다. 데이터 추가 : O(n) 동적 배열 : 배열의 크기를 유동적으로 조절할 수 있는 배열. 메모리 상에서 배열의 원소들이 연속적으로 붙어 있다. 장점 : 인덱스를 통해서 빠르게 접근 가능 (Read가 쉽다). 배열의 크기 유동적으로 조절 가능 연결 리스트 : 원소들이 메모리 상에서 연속적으로 붙어 있지 않다. => 인덱스로 빠른..
-
[자료구조] 트리Algorithms & Data Structure 2022. 1. 20. 19:44
트리 (Tree) 1. 트리 구조 트리: Node, Branch로 이루어진 그래프로 사이클을 이루지 않도록 구성한 데이터 구조이다. 트리는 탐색(검색) 알고리즘 구현을 위해 많이 사용된다. Node: 트리에서 데이터를 저장하는 기본 요소. Root Node: 트리 맨 위에 있는 노드 이다. Level: 최상위 노드를 Level 0이며, 하위 Branch로 연결된 노드의 깊이를 나타낸다. Parent Node: 어떤 노드의 다음 레벨에 연결된 노드 Child Node: 어떤 노드의 자식 노드 Leaf Node (Terminal Node): Child Node가 하나도 없는 노드 (가장 맨 끝의 노드) Sibling (Brother Node): 동일한 Parent Node를 가진 노드 Depth: 트리에서 ..
-
[자료구조] 큐 (Queue)Algorithms & Data Structure 2022. 1. 13. 21:57
Queue란 무엇인가? 큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 데이터 구조이다. FIFO 또는 LILO 정책. 즉, 스택 과는 반대이다. Enqueue : 데이터 넣기 Dequeue : 데이터 빼기 Queue()로 큐 만들기 import queue data_queue = queue.Queue() #데이터 입력 data_queue.put("Good day") data_queue.put(1) #큐 크기 출력 data_queue.qsize() #큐에 입력된 데이터 출력 data_queue.get() LIFO Queue() 마지막 넣은 데이터가 먼저 출력되는 구조. import queue data_queue = queue.LifoQueue() data_queue.put("Good") data_q..
-
[자료구조] 스택 (Stack)Algorithms & Data Structure 2022. 1. 13. 21:06
스택이란? 나중에 들어간 데이터를 가장 먼저 출력하는 구조이다. 쉽게 설명하자면, 뷔페에서 쌓아둔 접시들을 예시로 들 수 있다. 층층이 쌓인 접시들 중에서 가장 마지막으로 쌓은 접시를 손님들은 가장 먼저 가져간다. 스택에 무언가를 삽입하고자 했는데 이 스택이 이미 꽉 찬 상태여서 나타나는 에러를 Stack Buffer Overflow 스택 버퍼 오버플로우라고 한다. 개발자들의 빛과 희망과 같은 스택 오버플로우 웹사이트 이름도 여기에서 유래했다! 깔깔깔. 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 파이썬에서는 스택 자료형을 따로 지원하지는 않지만, 리스트로 만들 수 있다. 스택 : LIFO , FILO LIFO (Last-In-First-Out) : 나중에 들어간 것이 먼저 나온다. FIFO (Firs..