반응형

자료구조 6

[10] [알고리즘 - 자료구조] 트리(tree)란? (비선형구조) javascript 구현

트리(tree)란? 나무가 하나의 뿌리에서 줄기가 나와 가지로 나누어지는 것처럼 나무를 거꾸로 뒤집어 놓은 형태로, 자료가 가지처럼 나뉘어서 계속 뻗어 나가는 계층구조를 트리 구조라고 합니다. 루트노드(root node) - 부모가 없는 최상위 노드 부모노드(parent node) - 노드에 연결된 한 단계 상위 레벨 노드 형제노드(sibling node) - 같은 부모를 가지는 노드 단말노드(leaf node) - 자식이 없는 노드 높이(height) - 깊이 최댓값 크기(size) - 모든 노드의 개수 깊이(depth) - 루트 노드로부터의 거리 차수(degree) - 각 노드의 간선 개수 레벨(level) - 노드의 특정 깊이를 가지는 노드의 집합 * 전체 간선의 개수는 (트리가 N개 일 때) N ..

[6] [알고리즘 - 자료구조] 스택(Stack)이란? (선형구조) javascript 구현

스택이란 데이터의 삽입과 삭제가 한쪽 방향에서만 일어나는 구조 때문에, 가장 나중에 삽입된 데이터가 가장 먼저 삭제되는 후입 선출(LIFO : Last-In First-Out) 특징이 있습니다. 왜 거꾸로 아래에서 들어가고 아래에서 나오게 표현을 했냐고요? 저희가 일반적으로 배열을 생각하면 [0, 1, 2, 3, 4..] 이런 모양을 떠올리게 됩니다. JSON 포맷이나 정렬을 하게 되면 아래와 같은 모양으로 자주 접하게 될 것입니다. 그럼 이제 스택을 Javascript로 구현해볼게요. class Stack { #items; #count; constructor() { this.#items = []; this.#count = 0; } in(data) { this.#items[this.#count] = da..

[5] [알고리즘 - 자료구조] 연결리스트(Linked List)란? (선형구조) javascript 구현

연결리스트 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조입니다. 좀 더 쉽게 알아보겠습니다. 데이터와 다음 순서의 주소 값을 가지고 하나의 덩어리를 '노드'라고 표현합니다.표현합니다. 이런 모양이 되겠네요. 이런 식으로 데이터가 연결되어 있는 것이 연결 리스트입니다. 가장 처음의 노드는 Head라고 부르고, 마지막 노드를 Tail 이라고도 부른다고 합니다. 만약 이러한 연결 리스트에서 데이터를 삭제하고자 한다면 이처럼 다음 주소 값을 변경해주고 하나의 노드만 삭제를 하면 됩니다. 배열에 비해 빠른 속도의 처리가 가능합니다. 따라서 삽입, 삭제 속도가 빠릅니다. 하지만 빠른 탐색이 가능했던 배열에 비해 연결 리스트는 탐색이 느리다는 단점이 있습니다. 4번째..

[3] [알고리즘 - 자료구조] 선형구조란?

선형구조 데이터가 연속적으로 연결되어 있는 모양인 자료구조입니다. 선형 구조(linear structure)의 linear는 ‘선으로 된’, ‘직선 모양의’라는 뜻입니다. 한 칸에 하나의 데이터만 들어가고 그 데이터들이 연속적으로 연결되어 있는 모양을 뜻합니다. 일상생활에서는 지하철 노선도를 예로 들 수 있겠네요. 선형 구조와는 다르게 비선형 구조는 비순차적인 성질을 지닌 자료들을 표현하는데 적합한 구조를 의미합니다. 그럼 선형구조에서 순차 리스트를 먼저 알아보러 갑시다. [4] [알고리즘 - 자료구조] 순차리스트 란? (선형구조) javascript 구현 순차 리스트란? 리스트, 순차 리스트, 배열 이렇게 표현이 됩니다. 동일한 성격을 가진 자료들이 연속된 공간에 저장 되는 선형 자료구조입니다. 음식이..

[1] [알고리즘 - 자료구조] 자료구조란? 자료구조 전체 리스트 분류

자료구조란? 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문, 방법, 자료의 조직, 관리 또는 저장을 의미합니다. 서점에 책들이 만약 땅바닥에 널브러져 있고, 여기저기 구석에 정리되어있지 않은 채로 있다면, 찾기 쉬울까요~? 이처럼, 컴퓨터에서도 자료를 효율적으로 보관하고 정리하는 기술이 필요합니다. 이때 다양한 자료구조 기법을 사용합니다. 그렇다면 알고리즘은 무엇이기에 알고리즘 - 자료구조 연관 지어져 있을까요.? 알고리즘이란, 어떤 문제를 해결하기 위한 절차 또는 방법입니다. 즉, 어떤 문제를 해결 (가장 빠르게 또는 효율적으로) 하기 위해서 자료구조의 기법을 활용하여 효율적으로 데이터를 나열하고 문제를 해결해 나가는 것을 의미합니다. 다양한 자료구조의 기법을 알고 있다면 다양한 ..

node js 관련 키워드 정리 (node란, 스코프란, 스코프체인이란, 렉시컬 스코핑, 실행 컨텍스트, 호이스팅, this, 호출스택, 이벤트루프, http, 자료구조

- Node js 크럼 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임. 싱글 스레드. ​ - 스코프(Scope) 범위라는 의미. var one = 1; function click() { var one = 'x'; console.log('one = ', one); } click(); // x click 함수 내부의 지역변수 one 은 바깥의 전역번수 one을 건들 수 없음. ​ 스코프체인 var one = 1; function click() { console.log('one = ', one); } click(); // 1 click 내부의 one이라는 지역변수를 찾고, 없으면 바깥의 one 변수를 찾음. 이렇게 범위를 넓히면서 찾는 관계가 스코프 체인. ​ 렉시컬 스코핑(lexical scoping..

Development/Node 2021.05.11
반응형