배낭문제(Knapsack Problem) 배낭에 담을 수 있는 무게의 최댓값이 정해져 있고, 일정 가치와 무게가 있는 짐들을 배낭에 넣을 때, 가치의 합이 최대가 되도록 짐을 고르는 방법을 찾는 문제를 말합니다. 배낭에 짐을 넣을 때,짐을 쪼개서 넣을 수 있는 경우와
연결리스트는 아래와 같은 속성을 가지고 있음head : 연결리스트의 시작노드를 가리킴tail : 연결리스트의 마지막 노드를 가리킴length : 총 길이각각 노드들은 값을 가지고 있고, 다른 노드를 가리키거나 가리키지 않는 노드들의 구성으로 이루어져 있다. ( 다음
양방향으로 이어져있다.단일 연결리스트보다 보완된 점은 ? 만약 맨 마지막 요소를 제거한다고 하면 처음부터 tail을 만나기 전까지 검색을 한 후에 삭제할 수 있고, 거꾸로 reverse 해야 할 때도 앞에서부터 순차적으로 하나하나 방향을 바꿔줘야해서 번거롭다.
Last In First Out ( 후입선출 ) 가장 마지막에 있는 요소가 먼저 제거자바스크립트에서 재귀를 다룰 때 콜스택도 마찬가지로 이 스택의 원리이다. 다른 언어는 내장된 경우가 있는데, 자바스크립트에서는 내장되어있지 않아서 배열을 사용하던가, 연결리스트 통하여
트리 부모와 자식간의 관계로 구성되어 있다. 리스트는 선형구조 ( 한줄로 있는 구조 ) 트리는 비선형 구조 ( 한 갈래에서 여러가지 가지로 뻗어나갈 수 있다 ) 트리는 부모-자식 관계에 따라서 자식 노드만 가리킬 수 있다. 자식이 부모를 가리키거나 형제를 가리킬 수
같은 레벨에 있는 노드들을 먼저 거쳐가야 한다. 자식노드를 보기전에 형제노드를 먼저 체크한다. (수평레벨 체크)배열이나 리스트로 queue를 만들고 Push 생성 unshift 제거큐를 만들어서 요소를 추적하고, 그 방문한 데이터의 리스트를 만들어 마지막에 출력1\.