2021. 1. 7. 17:39ㆍ프로그래밍-Science/자료구조
1. 배열
정의 : 동일한 데이터 타입을 연속으로 저장(다만 JS는 동일하지 않아도 됨)
<원소조작>
new Array[크기) : 배열 생성
push(): 뒷부분 원소 추가, 스택에서 비롯된 메소드
pop(): 뒷부분 원소 제거, 스택에서 비롯된 메소드
unshift(): 앞부분 원소 추가, 큐에서 비롯된 메소드
shift(): 앞부분 원소 제거, 큐에서 비롯된 메소드
splice(index, 삭제할 원소 갯수): 특정 원소 삭제
배열1.concat(배열2): 배열1+배열2로 새로운 배열 만들기
<Iterator>
배열.every(함수): 함수의 리턴값이 false가 될 때까지 배열 원소들을 순회
배열.true(함수): 함수의 리턴값이 true가 될 때까지 배열 원소들을 순회
map, filter, reduce: 새로운 Array 리턴
<검색, 정렬>
배열.reverse() : 원소 순서 뒤집기
sort() : 원소 정렬, 단 기본적으로 lexicographically한 정렬을 진행하므로 내림차순 및 오름차순은 로직이 필요
: 문자의 경우도 ASCII값을 기준으로 정렬하므로 별도 로직 필요
배열.indexOf(검색키워드), lastIndexOf(검색키워드): 각각 원소 검색 결과의 첫결과, 마지막 결과를 리턴
<2차원배열=행렬>
A=[ ] 선언후 A[i]= 배열을 할당
A=[ ] -> A[0] = [1,2,3,4] , A[1] = [5,6,7,8]
접근시 A[행][열]로 접근
<String 변환>
배열.join(연결부호): 원소를 모두 하나의 String으로 이어줌, 연결부호를 정의하면 부호가 달림
2. 스택
정의: LIFO(후입선출) 원리에 따라 정렬된 컬렉션, 기본적으로 배열을 가지고 조작한다
<메소드>
push, pop
peek(): 꼭대기 원소 반환, 스택변경은 없다, 마지막 추가 원소 확인용으로 사용
isEmpty(): 스택이 비어있는지 여부 점검
size(), clear()
<스택의 구현>
사용시 new Stack으로 인스턴스 생성
<응용>
보통 진법의 변경 함수에 응용된다
예컨데 10진법을 2진법으로 변환하는 경우, 첫 연산이 뒤에 위치할것이기 때문
3. 큐
정의: FIFO(선입선출)의 원리에 따라 정렬된 컬렉션
<구현>
스택과 동일하다. 다만, shift, unshft를 이용한다
인스턴스 생성 후 사용 역시 동일하다
<응용>
우선순위큐(priority queue): 원소가 우선순위에 따라 추가, 삭제된다
Circular Queue: 우선순위큐를 이용하여 지속적으로 맨앞 원소를 꺼내 뒤에 넣는 행위를 반복
'프로그래밍-Science > 자료구조' 카테고리의 다른 글
[trie] Implement Trie (Prefix Tree) (0) | 2021.03.29 |
---|---|
[자바스크립트] 딕셔너리, 해시, 트리 (0) | 2021.01.18 |
[자바스크립트] 연결리스트, 집합 정리 (1) | 2021.01.07 |