전체 썸네일형 리스트형 연결 큐 순차 자료구조 방식에는 몇가지 문제가 있다. - 사용 크기가 제한되어 있어서 큐의 길이를 마음대로 변경할 수 없다. - 원소가 없을 때에도 항상 처음 크기를 유지하고 있어야 하므로 메모리도 낭비 된다. 연결큐의 알고리즘 1. 공백 연결 큐 생성createLinkedQueue() fornt 더보기 Intellij Lombok Connot find symbol Intellij 에서 LOMBOK 을 사용한 프로젝트의 웹서버를 띄울려고 하면 cannot find symbol 컴파일 에러가 발생한다.이때는 다음과 같이 설정해 주면 해결된다.https://www.jetbrains.com/idea/help/configuring-annotation-processing.html 더보기 원형 큐 선형 큐의 문제점 - rear가 배열의 마지막 위치에 있을때 앞에 빈자리가 있는 경우에도 포화 상태로 인식하고 삽입 연산을 하지 않는다. 큐의 빈자리를 사용하려면 앞으로 이동시켜 위치를 조정시켜야 하는데 복잡하여 큐의 효율성을 떨어뜨린다. 이런 문제를 해결하기 위해 원형 큐(Circular Queue)를 사용한다. 초기 공백 상태일때는 front와 rear 값이 0이 되고, 공백 상태와 포화 상태를 쉽게 구분하기 위해서 자리 하나를 항상 비워둠. 원형큐의 공백 조건 상태는 front=rear가 된다 rear는 앞으로 이동하면서 원소를 삽입하고 front는 rear가 이동한 방향으로 따라가면서 원소를 삭제 배열의 인덱스가 n-1 다음에 다시 0이 되어야 하므로 사용할 다음 인덱스를 정하기 위해서 나머지 연.. 더보기 Queue는 무엇인가? - Queue는 '선입선출(first-in fisrt out) 자료구조를 구현한 자바 인터페이스이다. - java.util에서 제공 http://www.jroller.com/VelkaVrana/resource/java16collections/queues090524-final.png http://www.jroller.com/velkaVrana/entry/java_1_6_collections_class - Iterable과 Collection의 기능을 가지고 있다는게 Queue의 특징 - Queue의 기능을 활용한 클래스 중 대표적인 클래스로 LinkedList가 있음 @Test public void queueInsertion() { Queue queue = new LinkedList(); queue.add.. 더보기 리스트 - 리스트는 특정 타입 값들이 순차적으로 정렬된 컬렉션이다. 자바에서는 LinkedList나 ArrayList 클래스를 일반적으로 사용 - 어떤 경우에는 LinkedList보다 ArrayList가 더 적합하며 반대일 수 도있다. - 사용하기 전에 리스트는 애플리케이션의 성능이나 메모리 사용량과 밀접한 관계가 있기 때문에 반드시 고민을 해봐야 한다. - 리스트를 사용하려면 메서드와 생성자 매개변수는 필드 정의로 List 인터페이스를 사용함. 배열과 리스트의 관계 public void arrayDefinitions() { int[] interger = new int[3]; boolean[] bools = {false, true, true, false}; String[] strings = new String[.. 더보기 현재진행 시제 의문문 긍정 - It is raining - 비가 내리는 중이다. 부정 - Is it raining? - 지금 비가 내리는 중인가요? 현재진행 시제 의문문은 am/is/are + 주어 + ing로 쓴다. am I speaking is he she it are we you thye Am I speaking too quickly? - 제가 너무 빨리 말하고 있나요? Where's Bob? Is he coming home now? - 밥은 어디있나요? 지금 집으로 오는 중인가요? Is Sarah taking a walk? Yes, she's at the park. - 사라는 걷고 있는 중인가요? 네 공원에서 걷고 있어요 Are we winning the game? Yes, We are - 우리가 게임에서 이겼나요? .. 더보기 현재진행 시제 부정문 긍정 - He is eating lunch - 그는 점심을 먹는중이다. 부정 - He is not driving - 그는 운전하고 있지 않다. 현재진행 시제 부정문은 am/is/are + not + -ing로 쓴다. I am not (='m not) doing using traveling cooking he is not(='s not /isn't) she it we are not(='re not/arent't) you they I'm not busy. I'm not doing anyghing now. - 나는 바쁘지 않다. 나는 아무것도 하고 있지 않다. I'm not using this chair. You can use it. - 나는 이 의자를 사용하고 있지 않다. 사용해도 돼. Tom is in L.. 더보기 이진 검색 public static boolean binarySearch(List numbers, Integer value) { if (numbers == null ||numbers.isEmpty()) { return false; } Integer comparison = numbers.get(numbers.size() /2); if (value.equals(comparison)) { return true; } if (value < comparison) { return binarySearch(numbers.subList(0, numbers.size() / 2), value); } else { return binarySearch(numbers.subList(numbers.size() /2 + 1, numbers.siz.. 더보기 병합정렬 알고리즘 public static List mergesort(List values) { if (values.size() < 2) { return values; } List leftHalf = values.subList(0, values.size() /2); List rightHalf = values.subList(values.size() / 2, values.size()); return merge(mergesort(leftHalf), mergesort(rightHalf)); } private static List merge(List left, List right) { int leftPtr = 0; int rightPtr = 0; List merged = new ArrayList(left.size() + right.. 더보기 퀵 정렬 알고리즘 public static List quickSort(List numbers) { if (numbers.size() < 2) { return numbers; } Integer pivot = numbers.get(0); List lower = new ArrayList(); List higher = new ArrayList(); for(int i=1; i < numbers.size(); i++) { if (numbers.get(i) < pivot) { lower.add(numbers.get(i)); } else { higher.add(numbers.get(i)); } } List sorted = quickSort(lower); sorted.add(pivot); sorted.addAll(quickSort(hig.. 더보기 이전 1 2 3 4 5 6 다음