자료구조 & 알고리즘 & CS +
-
Section22 - 이진 검색 트리자료구조 & 알고리즘 & CS + 2022. 7. 26. 23:11
[트리] 트리는 연결리스트 보다 약간 더 상위 단계고 복잡함 한 개의 노드는 여러개를 가질 수 있음 List - linear Trees - nonlinear 부모자식 구조로 이루어져있지 않으면 트리가 아님 Root - 트리의 탑 노드 Child - 다른 노드와 직접적으로 연결되어 있는 노드, 루트로부터 멀어짐 Parent - 자식의 반대 Siblings - 같은 부모 그룹의 노드 Leaf - Child가 없는 노드 Edge - 간선 Ex) - HTML DOM - Network Routing - 추상 구문 트리 - 인공 지능 - 폴더 설계 방식 - JSON [트리의 종류] - 트리 - 2진 트리 - 2진 검색 트리(BST) [이진 검색 트리] class Node { constructor(val){ this..
-
Section21 - 스택 & 큐자료구조 & 알고리즘 & CS + 2022. 7. 23. 23:53
[스택] 데이터의 모음 압축적인 데이터 구조 후입선출(LIFO) - 가장 먼저 넣어진게 나중에 배출 - 함수호출상황에서 많이 사용됨 - undo / Redo - 라우팅(방문기록) [배열로 스택 만들기] const stack = []; //O stack.push('google'); stack.push('insta'); stack.push('youtube'); stack.pop(); //X stack.unshift('create new file'); stack.unshift('resize'); stack.unshift('wrinkle'); stack.shift() [스택 만들기] class Node { constructor(val){ this.val = val; this.next = null; } } cla..
-
Section20 - 이중 연결 리스트자료구조 & 알고리즘 & CS + 2022. 7. 21. 01:12
[이중 연결 리스트] 싱글 리스트와 거의 비슷함 하지만 해줘야하는 일은 좀 더 많음 previous로 가는 node도 있음 [코드] // piece of data -val // reference to next node - next class Node { constructor(val){ this.val = val; this.next = null; this.prev = null; } } class DoublyLinkedList{ constructor(){ this.head = null; this.tail = null; this.length = 0; } push(val){ const newNode = new Node(val); if(this.length === 0){ this.head = newNode; } ..
-
Section19 - 단일 연결 리스트자료구조 & 알고리즘 & CS + 2022. 7. 20. 23:37
날라가서 다시씀 분명 어제 저장했던 기억이 있는데, 기억만 남아버리고 파일은 날아가버렸넵 [단일 연결 리스트] 얼핏보면 배열과 같지만, 다른 점들이 짱짱많음 [코드] // piece of data -val // reference to next node - next class Node { constructor(val){ this.val = val; this.next = next; } } class SinglyLinkedList{ constructor(){ this.head = null; this.tail = null; this.length = 0; } push(val){ const newNode = new Node(val); if(this.head === null){ this.head = newNode; ..
-
Section18 - 자료 구조 소개자료구조 & 알고리즘 & CS + 2022. 7. 18. 23:52
이전에 받은 유데미 강의 복습 다양한 자료구조가 있고, 각 상황에 맞는 최적의 알고리즘을 만들기 위해 그를 공부하는 것이다. [ES2015 클래스 구문 개요] 클래스란? 사전에 정의된 속성 및 메소드들을 이용해 객체를 생성하기 위한 청사진 [자료 구조 : 클래스 키워드] class Student{ constructor(firstName, lastName){ this.firstname = firstName; this.lastName = lastName; } } 새로운 오브젝트를 생성하기 위한 매소드는 constructor로 진행 클래스 키워드는 상수(const)를 만드는데, 그렇기 때문에 재정의 불가능 let firstStudent = new Student("Lee","min"); let secondStu..