학교공부/자료구조

학교공부/자료구조

[자료구조] Binary Search Tree

오늘은 '이진 탐색 트리'에 대해서 공부해보았다. 우선 이진 탐색 트리에 대해 알기 전에 '트리'라는 개념을 먼저 살펴보자. 이진 트리(Binary Tree) 트리란 그래프의 일종으로, 노드들이 나뭇가지처럼 연결된 형태를 띄는 비선형 자료구조이다. 비선형 자료구조라는 것은 스택, 큐와 같이 하나의 자료 뒤에 하나의 자료가 연결되어 있는 선형 자료구조와 달리 하나의 자료 뒤에 여러 개의 자료가 연결될 수 있는 구조를 뜻한다. 위 그림은 트리의 일종인 이진 트리의 예시 중 하나이다. 이진 트리는 자식 노드를 최대 두 개 가지는 트리를 뜻한다. 여기서 노드(node)란 위 그림에서 사각형 박스를 의미하며 일반적으로 데이터가 그 안에 담긴다. 그리고 이 노드들을 이어주는 선을 엣지(edge)라고 부른다. 어떤 ..

학교공부/자료구조

[자료구조] 배열과 연결리스트

- 배열 연속된 메모리 공간에 순차적으로 저장된 데이터들의 집합이다. 동일한 배열 내에 있는 데이터들은 모두 동일한 데이터 타입을 지닌다. 장점 1. 각 데이터에 접근하는 시간이 동일하게 O(1)로 빠르다. 2. 따로 포인터 등의 부가정보를 가질 필요가 없기 때문에 공간 낭비가 적다 단점 1. 처음 선언할 때부터 크기가 정해져있기 때문에 유연한 프로그래밍에 제약이 있고 불필요한 메모리를 차지할 수 있다. 2. 중간 데이터를 삽입 또는 삭제할 때 뒤에 데이터들을 모두 변경해야 한다. - 연결리스트 노드(데이터의 묶음)를 연결시킨 자료구조 각 노드에는 그 노드의 핵심정보인 key와 다음 노드를 가르키는 포인터인 next가 포함되어 있음 첫번째 노드는 head, 마지막 노드는 tail 장점 1. 데이터 변경 ..

DevM
'학교공부/자료구조' 카테고리의 글 목록