큐(Queue) 구조 큐 구조는 줄을 서는 행위와 유사하며 가장 먼저 넣은 데이터를 가장 먼저 꺼낼수 있는 구조이다. FIFO(First-In, First-Out) 또는 LILO(Last-in, Last-Out) 방식으로 스택과 꺼내는 순서가 반대이다. Java 에서 큐 자료구조 사용방법 Java에서는 기본적으로 java.util 패키지에 있는 Queue 클래스를 제공하고 Enqueue(큐에 데이터를 넣는 기능)은 Queue 클래스에서 add(value) 또는 offer(value) 메서드로 하고, Dequeue(큐에서 데이터를 꺼내는 기능)는 poll() 또는 remove() 메서드로 한다. Java에서 Queue 클래스는 인터페이스 이므로 객체 생성할때는 LinkedList 클래스를 사용해야 한다. ..
배열 배열은 같은 자료형의 데이터를 효율적으로 관리하기 위해서 사용되며, 같은 자료형의 데이터를 순차적으로 저장하는 기본적인 자료구조 이다. 배열을 사용하는 이유는 배열의 인덱번호로 빠른접근이 가능하다. 하지만 단점으로는 미리 최대 길이를 지정해야 해서 데이터의 추가 삭제가 어렵다. 배열 사용예제 //배열 생성방법 int[] a = new int[5]; //길이가 5인 int형 배열 생성 String b[] = new String[5]; //길이가 5인 String형 배열 생성 //구성요소 참조 System.out.println(a[0]); //0 출력 System.out.println(b[0]); //null 출력 //구성요소의 개수 알수있는 length System.out.println(a.lengt..
값들을 빨리 찾아갈 수 있도록 Tree 형태로 저장한다. 오라클의 index랑 비슷한 개념이다. Tree형태의 특징은 값들이 정렬되어 있어야 한다 그래야 Tree 형태로 검색이 가능하다. 만약 정렬되어 있지 않다면 하나의 값을 찾기 위해서 값을 처음부터 하나하나 비교를 해보는 수밖에 없다. 이걸 풀스캔(Full Scan)한다고 한다. 그러나 정렬이 되어있다면 값을 찾기 위해서 풀스캔 하지 않아도 된다. 만약에 데이터가 1,2,3,4,5,6,7,8,9 처럼 정렬된 상태 였을때 1~3, 4~6, 7~9 로 관리를 할수 있다. 1~3은 1 4~6은 2 7~9은 3 으로 관리 한다고 했을때 만약 5를 찾는다고 하면 먼저 2(4~6)를 찾아가서 5를 찾아간다. 그러면 1(1~3), 3(7~9)은 보지도 않고 5를..
자료구조란?자료구조의 정의를 알기전에 프로그램의 정의는 "프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다." 이다. 여기서 말하는 데이터의 표현은 데이터의 저장을 포함하는 개념이고 데이터의 저장을 담당하는 것이 바로 자료구조이다. 넓은 의미에서 int형 변수도, 구조체의 정의도 자료구조에 속한다. 둘다 데이터의 표현 및 저장하는 하나의 방법이기 때문이다. 실제로 배워야할 자료구조는 이렇게 단순하지 않다. 자료구조는 기본적으로 다음과 같이 분류할 수 있다. 파일도 데이터를 저장하는 도구이기 떄문에 파일의 구조도 자료구조에 포함된다. 선형구조는 자료를 표현 및 저장하는 방식이 선형(linear)이고, 선형은 단어의 뜻 그대로 선의 형태로 이해하면 된다. 즉 선형 자료구조는 데이터를 선..