본문 바로가기
반응형

자료구조8

[2020.10.25] 10월 넷째주 회고록 오늘은 오랜만에 회고록을 준비했다. 저번 주에는 휴식기를 가졌고 이번 주부터 다시 공부에 들어갔다. 이번 주에는 Data-Structure에 대해서 공부했는데 다양한 자료구조에 대해서 공부할 수 있었다. 스택, 큐, 연결 리스트, 해시 테이블에 대해서 공부했는데 오랜만에 공부하는 자료 구조라 헷갈리는 부분도 있었지만 그래도 잘 구현해냈다. 주말에는 복습을 위주로 공부했고 간단한 알고리즘 공부도 진행하였다. 주말에 공부하는 분량도 회고록에 넣기 위하여 금요일에 쓰던 회고록을 일요일로 바꾸었다. 갈수록 공부가 어려워져 시간이 더 들어가긴 하지만 작은 과제를 하나씩 해결할 때마다 뿌듯함이 점점 더 크게 느껴졌다. 또 자료구조를 직접 구현해보면서 이전의 배운 자바스크립트 기초 문법을 복습해볼 수 있었고 배운 부.. 2020. 10. 25.
[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.
반응형