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

분류 전체보기207

(Javascript) 알고리즘 알고리즘 어떤 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것 특정 작업을 수행하기 위한 프로세스 또는 일련의 단계. 프로그래밍과 관련된 대부분의 것들은 항상 일종의 알고리즘을 포함 문제 해결을 위한 기초적인 과정 제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지를 정해놓은 로직(주어진 input으로 정의된 계산을 수행한 뒤 output을 내는 것) 조건 입력, 출력, 명확성, 유한성, 효율성 입력 : 하나 이상의 데이터를 입력받는다. (매개변수) 출력 : 2개 이상의 다른 결과가 있어야한다. (return) 명확성 : 과정이 명확하고 모호하지 않은 명령어로 되어야 한다. 유한성(종결성) : 알고리즘이 끝이 나야 한다. 무한대로 실행된다면 유한성에 성립하지 않아 알고리즘이 아.. 2023. 1. 16.
(Javascript) [자료구조] Tree(BinarySearch) Tree 관계 기반의 자료구조로, 계층형 구조를 전문적으로 나타낸다 Tree의 최상단을 root node라고 부르며 아래에 연결된 node는 child node class BinaryNode { constructor(data) { this.data = data; this.left = null; this.right = null; } } class BinarySearchTree { constructor(data) { this.root = null; } insert(data) { if (!this.root) { this.root = new BinaryNode(data); return; } let node = this.root; while (true) { if (node.data > data) { if (nod.. 2023. 1. 16.
(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.