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

자료구조4

(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) [자료구조] 큐 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.