본문 바로가기

데이터구조

[JavaScript] Data Structure - Linked List, Hash Table Reference - 코드 스테이츠 이머시브 코스 - Data Structure 강의, Wikipedia 연결 리스트 (Linked List) Linked List는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되는 방식으로 데이터를 저장하는 자료구조이다. 실생활에 쓰이는 연결 리스트의 예 유튜브의 플레이리스트 포토샵의 Undo, Redo 웹의 되돌아가기 버튼 연결 리스트(Linked List)의 세 가지 종류 단일 연결 리스트 (Singly Linked List) 각 노드에 자료 공간과 한 개의 포인터 공간이 있고, 각 노드의 포인터는 다음 노드를 가리킨다. 이중 연결리스트 (Doubly Linked List) 단일 연결 리스트와 비슷하지만 각 노드에 두 개의 포인터가 존재하고 각각의 포인터는 해당.. 더보기
200728_Data Structure (graph, tree, bst), 시간복잡도 오늘 배운 것. 무방향 그래프, 트리, 바이너리 서치 트리 코드로 구현. BIg O notation을 이용한 시간복잡도 표현 O(1) - O(log n) - O(n) - O(n log n) - O(n^2) - O(n^3) - O(2^n) 순으로 복잡도 올라감. 더보기
200723_Data Structure 오늘 배운 것. Queue와 Stack의 차이점 이론상의 Queue와 Stack을 코드로 구현하는 방법 데이터를 Array가 아닌 Object의 담아 구현하는 이유 Array 메소드 pop, push, shift, unshift를 쓴다면 훨씬 코드 구현이 쉬워지지만 배열 메소드들은 모든 배열의 요소를 돌기때문에 O(n)의 시간복잡도를 갖는다. 하지만 Object로 구현한다면 정확한 타켓팅이 가능해서 O(1)의 시간 복잡도를 갖는다. 아래 링크로 Queue를 Object로 구현하는 법에 대해 상세한 설명이 있다. https://medium.com/@mayashavin/ds-queue-implementation-in-js-21ea5914c428 DS — Queue implementation in JS Eve.. 더보기