프로그래밍-Science/자료구조(4)
-
[trie] Implement Trie (Prefix Tree)
생전 처음들어보는 단어지만, 혹시나 싶어 이거 딱 한문제만 풀면서 정리해보려 한다. Trie는 일종의 자료구조인데, 검색어 자동완성 같은 모듈에 주로 사용되는 것 같다 루트노드는 자식만 가지고 있고, 자식들은 알파벳으로 구성된 key를 가지고 있으며, value가 다시 그 자식노드를 가리킨다. 그러니까 각 노드가 공통의 접두어를 가리킨다고 보면 될 것같다. 이 자료구조는 value, children, end를 가지고 있다. 특정 word를 insert하면, root의 자식들에 연쇄적으로 word에서 잘라낸 글자 하나가 insert 되는 형식이다. search하는 방식도 동일하다.
2021.03.29 -
[자바스크립트] 딕셔너리, 해시, 트리
1. 딕셔너리(map) 정의: [key, value] 형태로 원소를 모아놓은 자료구조 특징: set처럼 유일값을 다루지만, [key, value] 형태로 저장한다. 2. 해시 참고자료:mangkyu.tistory.com/102 [자료구조] 해시테이블(HashTable)이란? 1. 해시테이블(HashTable)이란? [ HashTable(해시테이블)이란? ] 해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조이다. 해시 테이블이 빠른 mangkyu.tistory.com 정의:해시 테이블은 [key, value] 형태로 원소를 모아놓은 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는데, 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저..
2021.01.18 -
[자바스크립트] 연결리스트, 집합 정리
1. 연결리스트 정의: 일련의 원소를 차례대로 저장하지만, 메모리상에서는 이웃해있지 않다. 다만 각 노드는 원소의 값과 포인터(참조정)로 구성되어 있고, 포인터는 다음 원소의 위치를 가리킨다 특징: 원소의 추가,삭제시 배열이 바뀌지 않지만, 특정 원소 검색시 모든 Loop를 돌아야 한다 head는 연결이 시작되는 지점을 참조한다 위 코드의 this.메소드에 해당되는 메소드들이다 이때 next는 다음 프로퍼티를 가리키는 포인터이다. 얘가 null이 되면 마지막 원소를 찾은 것이다 이때 실제 노드는 연결이 끊어졌으므로 가비지컬렉터가 수거해 감 앞뒤로 순회가 가능함 일일이 tail도 설정해줘야한다는 부분만 추가된다. 2. 집합 정의: Set. 중복된 원소가 없다. 합집합, 교집합, 차집합, 부분집합으로의 사용
2021.01.07 -
[자바스크립트] 배열, 스택, 큐, 연결 리스트, 집합 정리
1. 배열 정의 : 동일한 데이터 타입을 연속으로 저장(다만 JS는 동일하지 않아도 됨) new Array[크기) : 배열 생성 push(): 뒷부분 원소 추가, 스택에서 비롯된 메소드 pop(): 뒷부분 원소 제거, 스택에서 비롯된 메소드 unshift(): 앞부분 원소 추가, 큐에서 비롯된 메소드 shift(): 앞부분 원소 제거, 큐에서 비롯된 메소드 splice(index, 삭제할 원소 갯수): 특정 원소 삭제 배열1.concat(배열2): 배열1+배열2로 새로운 배열 만들기 배열.every(함수): 함수의 리턴값이 false가 될 때까지 배열 원소들을 순회 배열.true(함수): 함수의 리턴값이 true가 될 때까지 배열 원소들을 순회 map, filter, reduce: 새로운 Array 리턴..
2021.01.07