본문 바로가기
  • 개발 / 공부 / 일상

전체 글207

(Javascript) [자료구조] List(3) 원형 연결 리스트 마지막 노드가 처음 노드를 가리키는 연결 리스트 앞 노드와 뒤 노드가 연결이 되어 있고, 마지막 노드인 꼬리가 첫 노드인 헤드로 연결이 되어 있는 연결 리스트 function Node(data) { this.data = data; this.next = undefined; } function CircularLinkList() { this.head = null; this.tail = null; this.size = 0; } CircularLinkList.prototype.insert = function (data) { if (!this.head) { this.head = this.tail = new Node(data); this.head.next = this.head; } else { th.. 2023. 1. 16.
(Javascript) [자료구조] List(2) 이중 연결 리스트 Double Linked List : 리스트를 이루고 있는 노드 하나에 해당 노드의 값과 다음 노드에 대한 주소, 그리고 자신의 이전 노드에 대한 주소도 갖게 된다. 이에 자신의 다음노드와 이전노드로의 이동이 수월 단일 연결 리스트를 확장하여 양방향으로 링크가 구성되는 이중 연결 리스트를 만들 수 있다. 단일 연결 리스트의 노드가 next 주소만 가지고 있다면, 이중 연결 리스트는 이전주소(prev)와 다음 주소 (next)를 갖는다. class Node { constructor(data) { this.data = data; this.prev = undefined; this.next = undefined; } } class DoubleLinkedList { constructor() { .. 2023. 1. 16.
(Javascript) [자료구조] List(1) List 인덱스가 없이 빈틈없는 데이터를 적재한 배열 배열이 가지고 있는 인덱스라는 장점 대신 빈틈없는 데이터의 적재라는 점이 있는 자료구조 핵심은 엘리먼트들 간의 순서. 순서가 있는 데이터의 모임. 빈 엘리먼트를 허용하지 않는다 처음과 끝, 그리고 중간 엘리먼트까지 추가 및 삭제 가능 리스트에 데이터가 존재하는지 확인하는 기능 리스트의 모든 데이터에 접근할 수 있는 기능 종류 단일 연결 리스트 (Single Linked List) : 리스트를 이루고 있는 노드 하나에 해당 노드의 값과 다음 노드에 대한 주소를 포함. 하지만 이전 노드에 대한 정보는 갖고 있지 않고 다음 노드로만 이동할 수 있다 이중 연결 리스트 (Double Linked List) : 리스트를 이루고 있는 노드 하나에 해당 노드의 값과.. 2023. 1. 16.
(Javascript) [자료구조] 큐 queue(큐) 선입선출(FIFO, First In First Out), 먼저 들어간 데이터가 먼저 나온다 보통 사용자 입력에 대해서 저장, 관리. 레스토랑 앱, 예매 앱 등등 주요한 자료구조로 사용 Callback Queue 한쪽으로 데이터를 넣고 다른 쪽으로 데이터를 가져오는 구조. 데이터를 추가한 순서대로 데이터가 저장되고, 추가한 순서대로 데이터를 가져오게 된다 추가적으로 데이터를 넣는 쪽을 rear, 데이터를 가져오는 쪽을 front 데이터를 삽입하는 행위를 Eequeue, 데이터를 가져오는 것을 Dequeue class Node { constructor(data) { this.data = data; } } class QueueNode extends Node { constructor(data) .. 2023. 1. 16.
(Javascript) [자료구조] Stack Stack(스택) 선입후출(LIFO, Last In First Out), 먼저 들어간 게 나중에 나중에 브라우저 History(이전,다음 페이지) 또는 Ctrl+z로 이전작업을 취소하는 등의 동작에 쓰이는 자료구조 Call stack JS 코드가 실행되며 생성되는 실행 콘텍스트(Execution Context)를 저장하는 자료구조 함수를 호출하면 실행 컨텍스트가 생성되며, 이를 Call stack에 추가한 다음 함수를 수행 함수에 의해 호출되는 모든 함수(내부 함수들)는 Call stack에 추가되고 해당 위치에서 실행 함수의 실행이 종료되면 해당 실행 콘텍스트를 Call stack에서 제거한 후 중단 된 시점부터 다시 시작 만약 스택이 할당된 공간보다 많은 공간을 차지 하면 Stack Overflow .. 2023. 1. 16.
(Javascript) 자료구조 자료구조 (Data Structure) 한정된 용량(메모리, 공간)에 최적화시켜서 많은 데이터를 쓸 수 있도록 설계된 것 데이터에 편리하게 접근하고 변경하기 위해 데이터를 저장하거나 조직하는 방법 단순 구조 (Primitive Data Structure) 프로그래밍에서 사용되는 기본 데이터 타입 (string, number, boolean, null, undefined 등등) 비단순 구조 (Non-Primitive Data Structure) 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조 (Object, Array, function 등) 선형 구조 (Linear Data Structure) 저장된 자료의 전후 관계가 1:1 인 경우 비선형 구조 (Non-Linear Data Structure).. 2023. 1. 16.