본문 바로가기

DSA2

Linked List - 링크 리스트 어떤 언어이든 코딩의 기초를 배웠다면 array, 배열에 대해서 알 것이다. 하지만 Linked List는 학교에서 공부하지 않았다면 생소할 수도 있겠다. Linked List는 배열과 사용 방법은 비슷하지만 구조적으로 다르게 작동한다. 제일 쉽게 풀어본다면 배열과 linked list가 메모리를 어떻게 사용하는가 를 볼 수 있겠다. 배열은, 이미 알고 있듯이, 메모리를 연속적으로 차지한다. 예를 들어 배열의 인덱스 0의 메모리 주소가 0x01이라고 치자. 그리고 배열의 크기는 4, 즉 4개의 값을 가지고 있다. 이 배열을 메모리에 저장하려면 메모리에 5개의 공간이 끊기지 않고 연속적으로 존재해야 한다. 다시 말해서 메모리 주소 0x01부터 0x04 가 이 배열에 사용된다. 만약, 그럴 일은 없겠지만, .. 2022. 3. 22.
Binary Tree를 알아보자 코딩 공부를 시작했다면 한 번쯤은 "데이터 구조", "알고리즘" 이 두 단어들을 들어봤을 거다. 데이터 구조와 알고리즘은 코딩 테스트/인터뷰에서 자주 등장하는 주제로, 신입 개발자의 실력을 테스트해보는 용도로 사용된다. 오늘은 여러 데이터 구조 종류 중 binary tree에 대해서 알아보자. Binary tree는 거꾸로 뒤집힌 나무 모양과 비슷하다. Binary tree는 node로 구성돼있고, 각 node는 최고 2개의 child node를 가질 수 있다. Binary tree를 시작하는 node를 root라고 부르고, root는 반드시 딱 하나만 존재할 수 있다. node는 값을 저장하는 value, 왼쪽/오른쪽 child node에 연결할 수 있는 pointer들로 구성돼있다. node를 코드로.. 2022. 3. 17.
반응형