자료구조와 알고리즘
-
javaScript로 Set 구현자료구조와 알고리즘 2020. 10. 19. 11:11
집합(Set) 중복된 원소가 없고 정렬되지 않은 컬렉션 자바스크립트 내장 객체(ES6) 메서드 add(원소) : 원소 추가 remove(원소) : 원소 삭제 has(원소) : 어떤 원소가 집합에 포함되어 있는지 여부를 불리언 값으로 반환 clear() : 모든 원소 삭제 size() : 원소 개수 반환 values() : 집합의 모든 원소를 배열 형태로 반환 구현 class Set { constructor() { this.items = {}; } has(value) { return this.items.hasOwnProperty(value); // hasOwnProperty -> 객체가 특정 프로퍼티를 가지고 있는지를 나타내는 불리언 값을 반환한다 } add(value) { if (!this.has(val..
-
javaScript로 Linked list 구현자료구조와 알고리즘 2020. 10. 15. 13:37
연결 리스트(linked list) 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 배열과 달리 원소 추가/삭제 시 다른 원소들을 움직이지 않아도 된다는 장점이 있다 원소를 찾을 때까지 처음(head)부터 루프를 반복해야 한다 메서드 append(원소) : 리스트의 맨 끝에 원소 추가 insert(위치, 원소) : 해당 위치에 원소 삽입 remove(원소) : 원소 삭제 indexOf(원소) : 해당 원소의 인덱스 반환, 존재하지 않을 경우 -1을 반환 removeAt(위치) : 해당 위치의 원소 삭제 isEmpty() : 원소가 하나도 없으면 true, 아니면 false를 반환 size() : 원소의 개수 반환 getHead() : head 노드 반환 구..
-
javaScript로 Queue 구현자료구조와 알고리즘 2020. 10. 12. 13:59
Queue(큐) FIFO(First In First Out / 선입선출) 원리에 따라 정렬된 자료구조 큐의 자료는 뒤로 들어가서 앞으로 빠져나가는 구조 프린터의 '출력물 인쇄 대기'에 큐가 응용됨 메소드 enqueue : 큐의 뒤쪽에 원소(들) 추가 dequeue : 큐의 첫 번째(맨 앞) 원소를 반환하고 큐에서 삭제 front : 큐의 첫 번째 원소를 반환 isEmpty : 큐가 비어 있으면 true를, 아니면 false를 반환 size : 큐의 원소 개수 반환 구현 class Queue { constructor() { this.items = []; } enqueue(item) { this.items.push(item); } dequeue() { return this.items.shift(); } fr..
-
javaScript로 Stack 구현자료구조와 알고리즘 2020. 10. 7. 17:49
Stack(스택) LIFO(Last In First Out / 후입선출) 원리에 따라 정렬된 자료구조 스택의 자료는 항상 꼭대기에서 추가/삭제 된다 변수 또는 메소드 호출을 컴퓨터 메모리에 저장할 때 사용됨 메소드 push : 스택 꼭대기에 새 원소 추가 pop : 스택 꼭대기에 있는 원소를 반환, 해당 원소를 스택에서 삭제 peek : 스택 꼭대기에 있는 원소 반환 isEmpty : 스택에 원소가 하나도 없으면 true, 하나라도 있으면 false를 반환 clear : 스택의 모든 원소를 삭제 size : 스택의 원소 개수 반환 구현 class Stack { constructor() { this.items = []; } push(item) { return this.items.push(item); } p..