본문 바로가기
반응형

자료구조 공부7

[Data-Structure] HashTable (해시 테이블) 오늘은 해시 테이블(HashTable)에 대해서 공부했다. 해시 테이블(hash table), 해시 맵(hash map), 해시 표는 컴퓨팅에서 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. 해시 테이블은 해시 함수를 사용하여 색인(index)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다. (위키 백과) 해시 테이블에 대해서 알아보기 위해 JS로 간단하게 구현해보았다. 해시 함수 hashFunction()을 따로 만들어주고 JS의 배열 대신 크기를 조절할 수 있는 배열 LimitedArray를 새로 만들어 주었다. HashTable이라는 클래스를 선언해준 다음에 메서드들을 정의했다. 정의된 메서드들은 다음과 같다. insert(key, value) : 주어진.. 2020. 10. 23.
[Data-Structure] Linked List (링크드 리스트) 오늘은 링크드 리스트 (Linked List)에 대해서 공부했다. 링크드 리스트 (Linked List)란 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다.(위키백과) 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다. head 부분은 링크드 리스트의 가장 앞 노드를 뜻하며 tail 부분은 링크드 리스트의 가장 마지막 노드를 뜻한다. (이때, tail의 next Node는 null이다.) JS를 이용해서 간단하게 링크드 리스트를 구현해 보았다. Node 클래스와 LinkedList 클래스를 구현한 뒤, LinkedList의 내장 메서드로 링크드 리스트를 다룰 수 있는 기능을 구.. 2020. 10. 23.
[Data-Structure] Stack과 Queue 오늘은 Stack과 Queue에 대해서 공부했다. 스택(Stack)이란 LIFO(Last In First Out) 후입 선출 구조로 자료의 한쪽 끝에서만 데이터의 입출력이 일어나는데 흔히들 말하는 '접시 쌓기'처럼 맨 마지막에 들어온 데이터가 가장 먼저 밖으로 나오는 구조이다. 스택에 대해서 알아보기 위해 JS로 간단하게 구현해보았다. Stack이라는 클래스를 선언해준다음에 생성자 함수로 데이터를 넣어줄 부분을 초기화 해준 뒤, 메소드들을 정의했다. 정의된 메소드들은 다음과 같다. size() : 현재 스택에 들어온 요소들의 개수를 반환한다. push() : 스택에 데이터를 삽입한다. pop() : 현재 스택에서 가장 위에 있는 데이터를 반환 및 삭제한다. class Stack { constructor(.. 2020. 10. 22.
반응형