-
그래프 (Graph)Data Structure 2020. 5. 6. 00:24
Graph 그래프는 객체 간의 관계를 표현하는 자료구조입니다. 엣지(edge)라는 개념을 사용하여 노드(node)라고 불리는 객체를 연결하여 저장하고 효율적으로 검색할 수 있도록 합니다. 엣지로 두 노드를 연결할때 방향성이나 가중치를 가질 수 있습니다. 하나의 방향으로 이동한다면 방향 그래프 (Directed Graph) 양방향으로 이동한다면 무방향 그래프 (Undirected Graph) 엣지에 가중치가 할당되었다면 가중 그래프(Weighted Graph) Directed / Undirected / Weighted 그래프 표현방법 그래프를 표현하는 방법을 여러가지가 있지만 대표적으로 인접행렬(Adjacency Matrix)과 인접리스트(Adjacency List)가 있습니다. 인접행렬 - Adjacen..
-
해시 테이블 (Hash table)Data Structure 2020. 5. 5. 19:34
Hash Function 해시 함수는 어떠한 문자열을 고정된 길이의 암호화된 문자열로 바꿉니다. 암호화되어 출력된 문자열은 원래 문자열로 되돌아 갈 수 없습니다. 밑에 있는 두개의 코드처럼 해시함수를 간단히 구현할 수 있습니다. function hashFunction (key) { return key % 3; } console.log(hashFunction(128745)); // 0 String.prototype.hashCode = function() { var hash = 0; if (this.length == 0) { return hash; } for (var i = 0; i < this.length; i++) { var char = this.charCodeAt(i); hash = ((hash
-
연결 리스트 (Linked List)Data Structure 2020. 5. 1. 17:26
Linked List 연결로 이루어진 자료 구조입니다. 무엇이 연결되어 있을까요? 노드(Node)의 연결로 이루어진 자료구조입니다. 노드는 데이터와 주소를 가지고 있습니다. 노드가 어떤 주소를 가지고 있을까요. 노드가 어떤 주소를 가지고 있느냐에 따라서 연결 리스트가 달라집니다. 다음 노드의 주소 / 이전과 다음 노드의 주소 단일 연결 리스트 (Singly-Linked List) / 이중 연결 리스트 (Double Linked List) singly-linked list list.head.next.next.value === 37 const list = { head: { value: 12 next: { value: 99 next: { value: 37 next: null } } } }; Double Lin..
-
스택과 큐(Stack, Queue)Data Structure 2020. 5. 1. 11:29
집어 넣은 데이터에서 처음에 넣은 것을 가져가느냐 마지막에 넣은 것을 가져가느냐 두가지의 경우에 따라서 자료구조가 달라집니다. Stack (마지막) 쌓여있는 접시에서 가장 위에 있는 접시를 먼저 닦아야 하듯이 마지막 요소를 먼저 가져옵니다. Queue (처음) 놀이기구를 타기위해 가장 먼저 온 첫 손님이 가장 먼저 놀이기구를 타듯이 첫 요소를 먼저 가져옵니다. In Javascript 자바 스크립트에서 어떻게 구현될 수 있을까요. Stack push 메서드로 요소들이 객체 형태로 storage에 들어갑니다. storage에 들어가는 객체의 key 는 숫자, value 는 요소입니다. 객체 key의 숫자는 데이터의 크기를 알 수 있는 top 을 참조합니다. 만약에 요소가 push 를 통해서 추가된다면, t..
-
자료구조 (Data Structure)Data Structure 2020. 5. 1. 11:05
Data "문자, 숫자, 소리, 그림, 영상, 단어" 형태로 이루어진 의미 단위입니다. 사람들이 데이터를 분류하여 저장하는 일은 계속 진화하고 있습니다. 종이 -> 책 -> 도서관 -> 컴퓨터 현재 사람들은 컴퓨터에 데이터를 저장하는데요. 사람의 데이터를 컴퓨터에 어떻게 저장할 수 있을까요? 데이터 타입 (Data type) 컴퓨터에 0과 1로 저장되어 있는 데이터를 인간이 사용하는 여러 가지 데이터들의 종류로 해석하기 위한 장치입니다. 데이터 타입 메모리의 크기 표현 가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775..