자료구조 7

[JAVA/자료구조] List컬렉션 클래스 - ArrayList, LinkedList, Vector, Stack

List 인터페이스 List인터페이스는 중복을 허용하면서 저장 순서가 유지되는 컬렉션을 구현하는데 사용된다. 대표적인 List컬렉션 클래스에 속하는 클래스 4가지는 다음과 같다. List인터페이스에 정의된 메서드 1. Vector클래스 Vector클래스는 JDK1.0부터 사용해 온 ArrayList와 같은 동작을 수행하는 클래스이다. 하지만 기존 코드와의 호환성을 위해서만 남아있으므로 Vector클래스보다는 ArrayList클래스를 사용하는것이 좋다. 2. ArrayList클래스 ArrayList는 기존의 Vector을 개선한 것으로 Vector의 구현원리와 기능적인 측면에서 동일하다고 할 수 있다. ArrayList는 Obeject배열을 이용해서 구현하여 인덱스를 이용해서 데이터에 접근한다. 데이터를 ..

자료구조 2019.06.08

[JAVA/자료구조] 컬렉션 프레임 워크(Collections Framework)

컬렉션 프레임 워크(Collection Framework)이란? = 컬렉션(Collection)은 다수의 데이터, 즉 데이터 그룹을, 프레임워크(Frameworkd)은 표준화된 프로그래밍 방식 = 데이터군을 저장하는 클래스들을 표준화한 설계 = 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 = 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 컬렉션 프레임워크의 주요 인터페이스 3가지 컬렉션 프레임워크에서는 데이터를 저장하는 자료구조에 따라 다음의 3개의 인터페이스를 정의하였다. 그리고 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. 인터페이스간의 상속 관계는 ..

자료구조 2019.06.08

[JAA/자료구조] List와 Array차이

Reference https://wayhome25.github.io/cs/2017/04/17/cs-18-1/ 불러오는 중입니다... https://programmers.co.kr/learn/courses/17/lessons/803 자바로 배우는 자료구조(with 생활코딩) - 리스트(List)의 개념 | 프로그래머스 리스트(List)의 개념 배열은 데이터를 그룹핑해서 다수의 데이터를 효율적으로 관리하는 데이터 스트럭쳐입니다. 배열의 가장 큰 특징은 인덱스가 있다는 점이지요. 이 인덱스는 데이터를 매우 빠르게 가져옵니다. 하지만 인덱스를 써 데이터를 가져오려면 각 데이터의 인덱스 값이 고정되어야 합니다. 또 어떤 엘리먼트를 삭제하면 삭제된 데이터가 있던 자리는 비워둬야 해 메모리가 낭비됩니다. 또 배열에 ..

자료구조 2019.06.08

[JAVA/자료구조] 큐(Queue)

큐란? 큐는 먼저 들어온 데이터가 먼저 나가는 구조로, 선입 선출(FIFO:First-Int First-Out)이라고 한다. 큐는 뒤에서 새로운 데이터가 추가되고 앞에서 데이터가 하나씩 삭제되는 구조를 가지고 있다. 큐의 구조 - 전단(front): 큐에서 삭제가 일어나는 곳 - 후단(rear): 큐에서 삽입이 일어나는 곳 큐의 연산 - create(): 큐를 생성한다. - init(): 큐를 초기화한다. - is_empty(q): 큐가 비어 있는지를 검사한다. - is_full(q): 큐가 가득 찼는지를 검사한다. - enqueue(q, e): 큐의 뒤에 요소를 추가한다. - dequeue(q): 큐의 앞에 있는 요소를 반환한 다음 삭제한다. - peek(q): 큐에서 삭제하지 않고 앞에 있는 요소를 ..

자료구조 2019.06.06

[JAVA 자료구조] 스택(Stack)

스택이란? 스택은 물건을 쌓아올리는 자료를 쌓아 올린 형태의 자료구조이다. 가장 먼저 입력된 데이터가 맨 아래에 쌓이고 가장 최근에 입력된 데이터가 가장 위에 쌓이는 구조를 가지고 있다. 스택의 마지막에 삽입한 자료가 가장 먼저 꺼내어지므로 후입선출(LIFO:Last-In First-OUT)이며, 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형구조이다. ※참고※ 선형구조와 비선형구조 - 선형구조: 자료간의 관계가 1대 1의 관계를 가짐 - 비선형구조: 자료간의 관계가 1대 N의 관계를 가짐(ex.트리 자료구조) 스택의 구조 - 스택 상단(top): 스택에서 입출력이 이루어지는 부분 - 스택 하단(bottom): 바닥 부분 - 요소(element): 스택에 저장되는 것 - 공백(empty)상태: 요소가 하나..

자료구조 2019.05.22

[알고리즘/c] 이분검색

정렬된 S에 x가 몇번째에 있는지 찾는 알고리즘 #include void main(){ int S[] = {10,12,13,14,18,20,25,27,30,35,40,45,47}; int x; printf("찾고자 하는 값을 입력하세요:"); scanf_s("%d", &x); int x_result; x_result = location(S, 0, sizeof(S)/sizeof(int)-1, x); if(x_result==-1){ printf("값이 없습니다."); }else{ printf("S[]={"); for(int i=0; ihigh){ return -1; } else{ mid=(low+high)/2; if(x==S[mid]){ return mid; } else if(x

자료구조 2019.04.02