int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하시오. class Nod { int data; Nod left; Nod right; public Nod(int data) { this.data = data; this.left = null; this.right = null; } public Nod() { this(0); } } BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. class BinaryTree { Nod nod; int size; public BinaryTree() { nod = new Nod(); size = 0; } public void addFirstNode(int..
클래스 정의 클래스 정의하는 방법 class A{ int a; int b; } class 키워드를 사용하여 접근 제한자와 함꼐 선언한다. 객체 만드는 방법 A a = new A(); new 키워드란? Heap 영역에 데이터를 저장할 공간을 할당 받고 그 공간의 참조 값을 객체에게 반환한다. 기존의 literal 방식의 선언 방식은 같은 값이면 같은 주소를 할당해 주지만 new 키워드는 각각의 값과 다른 주소를 할당해 준다. System.out.println(a); //객체의 참조값 주소가 출력된다. 메소드 정의하는 방법 class A{ int a; int b; public int add(int c, int d){ return c + d; } } 메소드는 클래스 안에서 정의한다. 클래스에서 생성된 동작을 ..
JVM이란 무엇인가 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 1차 및 2차 배열 선언시 자바에선 어떤일이 벌어지는지(영역, 포인터, 주소 등) 1. JVM(Jave Virtual Machin)이란? 간단하게 말하면 자바를 실행하기 위한 가상 기계 이다. 실제 컴퓨터로부터 JAVA 어플리케이션 실행을 위한 메모리를 할당 받아 Runtime data를 구성한다. Java는 어떠한 플랫폼에 영향을 받지 않지만 JVM은 윈도우의 JVM과 리눅스의 JVM은 서로 다르다. Java의 소스코드는 JVM을 거쳐서 OS에 도달하므로 JVM이 인식할 수 있는 java byte..
트리란? 비 선형 자료구조의 일종으로 스택과 큐처럼 이어져 있는 것이 아니라, 서로간의 노드와 간선으로만 이루어져 있는 형태이다. 트리 순회 방법 중위 순회 : 왼쪽 자식, 자신, 오른쪽 자식 순으로 순회하는 방법이다. 전위 순회 : 자신, 왼쪽 자식, 오른쪽 자식 순으로 순회하는 방법이다. 후위 순회 : 왼쪽 자식, 오른쪽 자식, 자신 순으로 순회하는 방법이다. 레벨 순회 : 층을 한칸씩 내려가면서 순회하는 방식이다. BFS방식으로 쓰인다. 힙이란? 트리 중에서 완전 이진 트리로, 부모 노드보다 항상 작으면 MaxHeap, 부모 노드보다 항상 크면 MinHeap으로 표현할 수 있다. 힙의 특징은 넣을 때마다 자동으로 정렬되는 성질을 가지고 있으며 그 시간복잡도는 O(Nlogn)을 가지고 있다. Java..