왜 많은 자료구조가 존재하는가?특정 유형의 문제에 있어서 특정한 자료구조가 효율적이기 때문.일부 자료 구조는 매우 특화되어 있는 반면 자바스크립트 배열 객체 처럼 일반적인 것도 있음.자료구조는 모두 데이터를 저장하는 동일한 기능을 제공하지만동작방식, 데이터와 기능들 사
배열은 값들 마다 위치 정보 즉 인덱스가 있다. 단방향 연결 리스트는 인덱스가 없다. 그냥 다음 데이터를 가리키는 값들의 집합이다.마치 기차처럼. 데이터에 접근하기 위한 인덱스가 없기 때문에 몇번째 값에 바로 접근 못한다. 항상 처음(head)부터 타고 들어가야 한다.
단방향 연결 리스트에서 앞으로 갈수있는 포인터가 추가됨.뒤에서 앞으로도 갈 수 있어서 편리하지만 그만큼 메모리를 더 사용한다.포인터가 하나 추가된 것 말고는 단방향 연결 리스트와 동일. 인덱스 없음.https://visualgo.net/en/list?slide
후입선출stack이란 서류더미를 생각하면 된다. 마지막으로 위에 놓은 것부터 다시 뺀다.가장 마지막으로 추가된 요소는 가장 먼저 제거된다콜스택, 실행취소 같은 상황에서 스택을 쓴다.배열로 스택을 구현할 수 있다.shift와 unshift를 써도 되지만 그렇게하면 매번
트리에는 정말 많은 종류가 있다. 그중 대표적으로 살펴볼 것들treebinary treebinary search tree비교. 이진 검색 트리는 BST라고 줄여 말한다.트리는 연결 리스트처럼 노드로 이루어진 데이터 구조이다.차이점은 노드들 사이에 부모-자식 관계가 있다
정렬되지 않은 이진 트리를 탐색하는 널리 사용되는 방법 4가지가 있다.각각 순서대로 이름이 있다.재귀를 많이 사용한다Breadth-first Search 너비 우선 BFSDepth-first Search 깊이 우선 DFS각 트리가 생긴 모양이 다른 만큼 다른 전략의 트
힙(heaps)은 트리의 일종이다트리에 대해 적용되는 것은 일반적으로 힙에도 적용된다많은 종류의 힙이 있다. 피보나치 힙, 레오나르도 힙, 소프트 힙, 좌측 힙 등이 중에서 이진 힙을 다룬다이진 힙은 두 종류가 있다Min binary heaps 최소 이진 힙Max bi
해시 맵이라고도 한다. 매우 자주 사용되는 것들많은 프로그래밍 언어에 해시 테이블이 내장되어 있다. 배열처럼.내장되어 있지만 원리를 공부하기 위해 직접 코딩해본다.해시 알고리즘에 대해서도 공부해시 테이블에서 충돌이 어떤 의미인지 어떻게 해결하는지해시 테이블은 key-v
그래프 그래프는 노드나 노드들의 연결을 모은 것이다 앞에서 배운 트리는 그래프의 일종. 트리는 한 개의 노드(루트)에서 내려오는 여러 자식 노드의 형태. 그래프는 오늘날 매우 널리 쓰임. 모든 sns들이 그래프를 쓴다 영화추천 사이트, 쇼핑몰 넷플릭스나 아마