자료구조10 자료구조 힙(Heap) 알아보기 자료구조 힙(Heap) 알아보기 힙(Heap)은 무엇인가? 힙은 완전 이진 트리(Complete binary tree)의 한 종류이다. 완전 이진 트리에는 마지막 레벨을 제외하고는 빈 노드가 존재하지 않는다. 따라서 배열로 구현하기에 적합한 이진 트리이다. 루트 노드가 그 트리의 최댓값 혹은 최솟값을 가진다. 루트 노드가 트리의 최댓값을 가지면 최대 힙(Max heap) 루트 노드가 트리의 최솟값을 가지면 최소 힙(Min heap) 힙의 종류 최대 힙 (Max heap) 최대 힙은 각 노드의 값이 자식 노드의 값보다 크거나 같은 트리이다. 부모 노드의 Key 값 >= 자식 노드의 Key 값 루트 노드의 Key 값 = 트리의 최댓값 최소 힙 (Min heap) 최소 힙은 각 노드의 값이 자식 노드의 값보다.. 2020. 6. 14. 자료구조 이진 트리(Binary Tree)의 종류 Binary Tree 이진 트리 이진 트리(Binary Tree) 란 무엇인가? 각각의 노드가 최대 2개의 자식 노드를 가질 수 있는 트리이다. 정렬과 검색 알고리즘을 위한 하나의 도구 이진 트리의 모양에 따라 알고리즘의 성능에 차이가 있다. 트리의 형태는 레벨과 노드 수에 따라서 결정된다. 이진 트리(Binary Tree) 의 종류 1. Perfect binary tree 포화 이진 트리 포화 이진 트리는 모든 레벨의 노드가 가득 차있는 트리이다. 노드가 2개의 자식을 가지고 있다. 차수(Degree) 가 2 이다. 모든 노드가 가득 차있어 단말 노드부터 루트노드까지의 높이가 같다. 노드의 개수 n = 2^h - 1, h 는 높이 A는 B 와 C를 자식으로 가져 꽉 차있고, B는 D 와 E, C는 F .. 2020. 6. 11. 자료구조 트리(Tree) 간단하게 알아보기 Data Structure Tree 자료구조 트리 트리(Tree) 란 무엇인가? 트리는 계층 구조(Hierarchical structure)로 이루어진 노드(Node)와 간선(Edge)의 집합이다. 부모-자식 관계의 계층 구조. 다음 노드는 여러 개가 될 수 있지만 이전 노드는 반드시 하나이다. 간선(Edge) 이란? 노드 사이를 연결하는 선이다. 부모-자식간의 관계를 나타내기 위해서 간선을 사용한다. 노드의 종류 트리에서 노드의 위치에 따라 구별되는 노드 루트(Root) 노드 - 트리의 첫번째 노드이다. 단말(leaf) 노드 - 자식 노드가 없는 노드이다. 내부(Internal) 노드 - 자식 노드가 있는 노드이다. 트리에서 노드 사이의 관계에 따라 구별되는 노드 부모(Parent) 노드 - 자식 노드.. 2020. 6. 9. [C언어] Array Stack 배열 스택 구현 스택이란 ? 리스트와 같이 선형 (Sequential) 구조 자료를 순차적으로 저장한다. 리스트와 다르게 LIFO(후입 선출) 자료의 추가와 제거가 TOP에서 이루어 진다. 스택에 필요한 주요 Operations Pop - 스택의 Top에 있는 자료를 제거한 후 반환한다. Push - 스택의 Top에 자료를 추가한다. Peek - 스택의 Top에 있는 자료를 반환한다. (제거 x) isEmpty - 스택이 비어있는지 확인한다. 배열 스택의 장점 속도가 빠르다 더 빨리 노드에 접근할 수 있다. 배열 스택의 단점 미리 저장할 데이터의 개수를 예측하고 여유롭게 스택의 크기를 지정해야한다. 나중에 데이터를 추가하기 위해서이다. 만약 데이터의 개수만큼 배열의 크기가 정해지면 나중에 새로운 데이터를 추가할 수 없게.. 2020. 6. 8. 이전 1 2 3 다음