javascript(14)
-
Hash Table
Hash는 배열을 사용하여 값을 저장하기 때문에 빠른 검색속도를 가지고 있다. 특정한 값을 search하는데 데이터 고유의 인덱스로 접근을 하는데 이 인덱스로 저장되는 key 값이 불규칙 하다. 그래서 저장할 데이터와 연관된 고유한 숫자를 만들어 낸 뒤 이를 인덱스로 사용한다. 특정 데이터가 저장되는 인덱스는 그 데이터만의 고유한 위치이기 때문에 다른 데이터의 사이에 끼어들거나, 삭제시 다른 데이터로 채울 필요가 없으므로 연산에서 추가적인 비용이 없도록 만들어진 구조이다. 해쉬 충돌 (Hash Collision) 방지 1. Separate Chaining 연결리스트를 이용하는 방식으로 키(Key)에 매핑된 인덱스가 가르키는 연결 리스트(Linked List)에 노드(Node)를 추가하여 값(Value)을..
2019.07.28 -
Tree
1. Tree 트리 구조는 비선형 구조로 데이터가 계층적으로 구성되어 있다. 트리는 노드들과 노드를 연결하는 edge(간선)들로 이루어진 자료 구조로 하나의 루트로드를 가지고 루트 노드는 0개 이상의 자식 노드를 가지고 그 자식 노드 또한 0개 이상의 자식 노드를 가지는 구조가 반복된다. Root Node : 트리 구조에서 최상위에 존재하는 노드 (A) Node : 트리의 구성요소에 해당하는 요소 (A, B, C, D, E, F, G, H, I) Edge : 노드와 노드를 연결하는 연결선 Terminal Node(Leaf Node) : 밑으로 다른 노드가 연결되어 있지 않은 노드 (H, I, F, G) Sub -Tree : 큰 트리에 속하는 작은 트리 Level : 트리에서 각 층별로 숫자를 매긴다. H..
2019.07.25 -
Stack, Queue, Linked List
1. stack 데이터를 한쪽 끝에서만 넣고 뺄 수 있는 LIFO(Last In First Out) 형식의 선형 자료형이다. 스택의 연산 pop() : 스택 가장 위의 항목 제거 push(item) : item 하나를 스택의 가장 윗부분에 추가한다. peek() : 스택의 가장 위에 있는 항목을 반환한다. 스택의 특징 배열과 달리 스택은 상수 시간에 i 번째에 접근할 수 없다. 데이터 추가 삭제 연산에서는 상수 시간에 접근이 가능하다. Pseudo Code Stack 함수를 생성 데이터를 담을 배열을 생성 배열 마지막에 값을 추가하는 함수를 만든다. (push) 배열 마지막에 값을 제거하는 함수를 만든다. (pop) 배열 마지막 값을 반환하는 함수를 만든다. (peek) 2. Queue 앞부분부터 삭제가..
2019.07.24 -
함수 객체
function add (x,y){ return x+y; } add.result = add(2,5; add.status = "ok" console.log(add.result); // 5 console.log(add.status); // "ok" 위의 코드를 보면 함수가 일반 객체 처럼 프로퍼티를 추가하는 게 가능하다는 것을 보여준디. 함수 코드는 [[Code]] 내부 프로퍼티에 자동으로 저장된다. ※add() 함수 객체 [[Code]] ======> return x+y result ======> 5 status ======> "ok" 자바스크립트에서 함수도 일반 객체 처럼 취급 될수 있고 다음과 같은 동작이 가능한 일급 객체이다. (일급 객체란 나열한 기능이 모두 가능한 객체를 말한다. 리터럴에 의해 생..
2019.07.19 -
함수
함수의 정의 함수를 생성하는 방식에는 3가지 방식이 있다. 각각의 방식에 따라 동작에 미묘한 차이가 있다. 함수 선언문 (function statement) 함수 표현식 (function expression) Function() 생성자 함수 1. 함수 리터럴 자바스크립트에서는 함수도 일반 객체처럼 값으로 취급된다. 때문에 함수 리터럴을 이용해 함수를 생성할 수 있다, 함수 선언문이나 함수 표현식 모두 이런 방식으로 함수를 생성한다. function add (x,y) { return x+y } 함수 리터럴은 크게 네 부분으로 구성되어 있다 function 키워드 함수명 : 함수명을 통해서 재귀적으로 호출하거나 디버거가 함수를 구별하는 식별자로 사용된다. 자바스크립트에서 함수명은 선택 사항으로 함수명이 없는..
2019.07.18 -
배열
배열은 자바스크립트 객체의 특별한 형태이다. 크기를 지정하지 않아도 되고 어떤 위치에 어느 타입의 데이터를 저장하더라도 에러가 발생하지 않는다. 1. 배열 리터럴 배열 리터럴은 새로운 배열을 만드는 데 사용하는 표기법으로 대괄호([])를 사용한다. var colorArr = ["orange", "yellow", "blue", "green", "red"]; console.log(colorArr[0]) // orange console.log(colorArr[3]) // green 객체 리터털에서는 프로퍼티 이름과 프로퍼티 값을 모두 표기해야 하지만 배열 리터럴에서는 각 요소의 값만을 포함한다. 객체의 경우는 프로퍼티의 이름으로 해당 프로퍼티에 접근했다면 배열의 경우 배열 내 인덱스 값으로 접근한다. 2.배열..
2019.07.17