-
[자바로 구현하고 배우는 자료구조] 4. 힙(Heap) & 트리(Tree) (4)스터디플래너/복습하기 2021. 11. 1. 22:41
4-12. 트리:Contains contain 메소드를 이용하여 트리에 찾고자 하는 요소가 있는지 확인할 수 있다. public boolean contains(E obj){ return contains(obj, root); } public boolean contains(E obj, Node node){ // node가 null이면 false를 반환한다. if(node == null){ return false; } // obj와 node.data가 같으면 true를 반환한다. if(((Comparable obj).compareTo(node.data))==0){ return true; } // 비교하는 값이 node값보다 작아 오른쪽 노드로 이동하여 비교한다. if(((Comparable obj).compa..
-
[자바로 구현하고 배우는 자료구조] 4. 힙(Heap) & 트리(Tree) (3)스터디플래너/복습하기 2021. 10. 30. 23:59
4-7. 트리: 완전 트리와 정 트리 완전 트리(Complete Tree)는 잎 노드가 아닌 모든 노드가 두 개의 자식 노드를 가지고 있고, 마지막줄은 왼쪽에서 오른쪽의 순서로 꽉 차있다. 정 트리(Full Tree)는 잎 노드가 아닌 모든 노드가 두 개의 자식 노드를 가지고 있고, 모든 잎 노드가 같은 레벨이다. 4-8. 트리: 순회 모든 노드를 순회하는 순서를 정하는데 여러가지 방법이 있다. 루트의 순서에 따라 전위 순회(Pre-order Traversal), 중위 순회(In-order Traversal), 후위 순회(Post-order Traversal)이 있다. (루트의 순서에 따라로 정한건 내가 순회 외울 때 쓰던 방법이다) 전위 순회 - 루트로 간다. - 왼쪽 자식으로 간다. - 오른쪽 자식으..
-
[자바로 구현하고 배우는 자료구조] 4. 힙(Heap) & 트리(Tree) (2)스터디플래너/복습하기 2021. 10. 27. 23:25
4-4. 힙:TrickleUp 함수 완전 이진 트리는 자식 노드의 번호나 부모노드의 번호를 구할 수 있다. 부모노드를 구하는 공식은 (자신의 노드번호 - 1)/2의 내림 값이고, 자식 노드를 구하는 공식은 자신의 노드 번호 * 2 + 1, 노드 번호 * 2 + 2이다. 15를 갖고있는 노드를 기준으로 부모 노드는 (4-1)/2의 내림값은 1, 자식노드는 4 * 2 + 1, 4 * 2 +2로 9, 10이다. int lastPosition; E[] array = (E[])new Object[size]; public void add(E obj){ array[++lastPosition] = obj; trickleUp(lastPosision); } public void swap(int from, int to){ ..
-
[자바로 구현하고 배우는 자료구조] 4. 힙(Heap) & 트리(Tree) (1)스터디플래너/복습하기 2021. 10. 26. 23:45
4-1. 힙과 트리 소개 트리에서 원 안의 트리 요소를 노드라 하고, 노드와 노드를 잇는 선을 edge라 한다. root는 트리의 시작부분, leaf/leaves는 트리의 마지막 부분이다. 각각 A 노드는 B, C노드의 부모가 되고, B, C노드는 A노드의 자식이 된다. 같은 부모 노드를 갖는 B, C노드는 서로 형제 노드이다. 루트 노드의 레벨은 0이고, 자식노드로 내려갈 수록 1씩 추가된다. 4-2. 힙:Tree levels 트리라고 부르는 구조는 사실 힙이고, 힙은 어떤 종류의 힙인가에 따라 두 가지 규칙이 존재한다. 첫 번째 규칙은 부모 노드가 자식노드보다 무조건 크다는 것이다. 이 경우, MaxHeap이라 부르며 루트 노드의 크기가 트리의 노드 중 가장 크다. 두 번째 규칙은 부모 노드가 자식노..
-
[자바로 구현하고 배우는 자료구조] 3. 해시(Hash) (4)스터디플래너/복습하기 2021. 10. 25. 22:59
3-15. add와 remove 메소드 public boolean add(K key, V value){ if(loadFactor()>maxLoadFactor){ resize(tableSize * 2); } HashElement he = new HashElement(key, value); int hashval = key.hashCode(); hashval = hashval & 0x7FFFFFFF; hashval = hashval % tableSize; harray[hashval].add(he); numElement++; return true; } public boolean remove(K key, V value){ int hashval = key.hashCode(); hashval = hashval & 0..
-
[자바로 구현하고 배우는 자료구조] 3. 해시(Hash) (3)스터디플래너/복습하기 2021. 10. 24. 16:48
3-11. 해시 클래스 위 그림처럼 체인 해시는 배열이고, 각 요소마다 연결리스트가 포함되어 있다. 각 요소에 넣을 객체를 해시 요소(Hash Element)라 하고, 각각의 해시 요소에는 키(Key)와 값(Value)를 갖는다. public class Hash implements HashI{ class HashElement implements Comparable{ K key; V value; public HashElement(K key, V value){ this.key = key; this.value = value; } public int compareTo(HashElement o){ return (((Comparable)this.key).compareTo(o.key)); } } int numElem..
-
[드림코딩 by 엘리] 자바스크립트 기초 강의(4)스터디플래너/복습하기 2021. 10. 24. 11:44
JavaScript JSON 알아보기 HTTP(HyperText Transfer Protocol)이란 브라우저 위에서 동작하는 클라이언트가 어떻게 서버와 통신할 수 있는지, 어떻게 Hypertext를 서로 주고받을 수 있는지 정의한 프로토콜로 통신규약이다. Hypertext란 링크만 해당하는 것이 아니라 브라우저를 기반으로 사용되는 자원들, 예를 들면 문서, 이미지, 파일 등을 포함한다. Http는 클라이언트가 서버에게 데이터를 요청(Request)할 수 있고, 서버는 클라이언트가 요청한 것에 따라 그에 맞는 응답(Response)을 클라이언트에게 보내주는 방식으로 구성된다. Http를 이용하여 서버에게 데이터를 요청해 받아오는 방법으로 Ajax를 이용했다. Ajax는 웹페이지에서 동적으로 서버와 데이터..
-
[드림코딩 by 엘리] 자바스크립트 기초 강의(3)스터디플래너/복습하기 2021. 10. 22. 12:05
https://youtu.be/yOdAVDuHUKQ 자바스크립트 강의는 거의 코드라서 블로그에 올리기 보다는 깃허브에 업로드하고있다. 이번 영상의 과제가 Array의 메소드를 정리해보는 거라서 공부할 겸 블로그에 작성한다. 대부분의 메소드는 이해했는데 every, some, map, reduce, reduceRight은 매개변수도 많고 계속 봐도 모르겠다. 다음 강의에서 설명해주시려나,,, 설명해주셨음 좋겠다! length 배열의 길이를 number형으로 반환한다. toString() 배열의 요소들을 문자열로 반환한다. toLocaleString() toLocaleString 메소드를 이용하여 문자열로 변환된 배열의 요소를 문자열로 반환한다. pop() 배열의 마지막 요소를 제거하고 반환한다. 배열이 비..