트리(Tree) 트리는 Node와 Edge로 이루어진 자료구조이다. 각 노드들이 나무가지처럼 브랜치( = 엣지, 링크)로 연결된 비선형적, 계층적 자료구조이다. 트리의 구조 (용어) 노드와 에지 노드(Node) : 트리 구조에서 자료 값을 담고있는 단위 에지(Edge) : 각 노드 간의 연결 선 루트 노드(Root) : 가장 위의 노드 (1) 잎새 노드(Leaf) : 자식이 없는 노드 (8), (9), (10) ... 내부 노드(Internal) : 잎새 노드를 제외한 모든 노드 노드 간의 관계 부모(Parent) : 연결된 두 노드 중 상위 노드 (2번 노드는 4번 노드의 부모 노드) 자식(Child) : 연결된 두 노드 중 하위 노드 (4번 노드는 2번 노드의 자식 노드) 형제(Sibling) : 같..
Map Map key - value 쌍으로 관리하는 메서드를 구현함 검색을 위한 자료구조 key값을 이용하여 값을 지정하고, 값을 꺼내오는 방식 - hash 알고리즘으로 구현됨 객체의 유일성 비교를 위해 equals() , hashCode() 메서드를 구현해야 함. CollectionFramework의 HashMap, Hashtable의 사용법이 궁금하신 분은 목차의 "HashMap 선언" 부터 보시면 됩니다! HashMap, Hashtable의 구조 키(Key) : 해시 테이블 접근을 위한 입력 값 해시 함수(Hash Function) : 키를 해시값으로 매핑하는 연산을 수행 해시 값(Hash Value) : 해시 테이블의 인덱스 HashMap, Hashtable : key - value..
Deque Queue와 Stack의 성질을 둘다 가지고 있다. Stack : push / pop / peek - 제일 늦게 들어간 것이 제일 먼저 나온다. Queue : offer / poll / peek - 제일 먼저 들어간 것이 제일 먼저 나온다. Deque : offerFirst, offerLast 등 : 양방향 Deque의 특징 Deque는 흔히 Stack과 Queue의 특징을 둘 다 갖고 있다고 한다. Queue는 선입선출의 구조를 가지고있다. Deque에서 offerLast로 값을 넣고, pollFirst로 값을 꺼내면 뒤(왼쪽)로 값을 넣고, 앞(오른쪽)에서 꺼내는 Queue와 같다. 또한, offerFirst로 값을 넣고, pollLast로 값을 꺼내면 위와 반대로 앞으로 값을 넣고, 뒤에..
Interface Queue 공식 문서 https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html Queue 선형 자료구조 First In First Out : 가장 먼저 입력된 자료를 가장 먼저 꺼낼 수 있음 맨 앞(front)에서 자료를 꺼내고, 맨 뒤(rear)에 자료를 추가함 몰랐던 영어지만, queue는 "차례를 기다리는 사람이나 승용자의 열"이라는 뜻이다. "대기줄"이라고 생각해도 될 것 같다. 먼저온 순서대로 들어가고, 먼저 온 순서대로 나간다. 변수 선언 Queue queue = new LinkedList(); 아래와 같이 new Queue로 직접 생성할 수도 있지만, Queue는 인터페이스 이기 때문에 해당 인터페이스의 메서드들을 모두..
Stack 선형 자료구조 Last In First Out : 가장 나중에 입력된 자료를 가장 먼저 꺼낼 수 있음 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 꺼내올 수 있음 책을 책상 위에 쌓으면 위에서 만 꺼낼 수 있다. stack을 그대로 번역하면 "쌓다." 이기 때문에 말 그대로 아래서부터 데이터를 쌓고, 최근에 쌓은 데이터 즉, 맨 위의 데이터만 꺼낼 수 있다. 스택 생성 Stack stack = new Stack(); 데이터 처리 push(Object obj) : 데이터 추가 데이터를 맨 뒤에 추가한다. //값 추가 stack.push(1);//[1] stack.push(2);//[1,2] stack.push(3);//[1,2,3] pop() : 데이터 조회, 삭제 (꺼내기) 맨 뒤의 데..
1. 배열이란? 동일한 자료형(Type)의 데이터를 하나의 연속된 공간에 저장하는 자료구조이다. 각 데이터의 저장 위치는 index(0부터 시작)를 부여해 접근한다. 정해진 크기의 메모리를 먼저 할당받아 사용한다. 즉, 선언할 때 크기를 미리 지정해야한다. 한번 선언하면 이후에 크기를 변경할 수 없다. 비어있는 인덱스가 존재해서는 안된다. 만약 특정한 값으로 초기화하지 않은 배열 안의 데이터를 참조하면 예외가 발생한다. 인덱스(index) 인덱스는 배열의 각 저장 위치를 가리키는 0부터 1씩 증가하는 값이다. 배열 이름 옆에 대괄호[ ]에 기입한다. int[] arr = new int[5]; arr이라는 이름의 배열이 있고, 5개의 저장공간을 갖는다. 첫번째 저장공간의 값을 가져올때는 arr[0], 두번..
컬렉션 프레임워크 JDK에서 자료구조를 구현해놓은 라이브러리 java.util 패키지에 구현되어 있음 개발 시간을 절약하기 위해 list, set, map 등 여러가지 알고리즘을 사용할 수 있음 java doc 링크 : https://docs.oracle.com/javase/8/docs/api/ 1. List 인터페이스 객체를 순서에 따라 저장, 관리 중복 허용 ArrayList, LinkedList, Vector, Queue 등 https://docs.oracle.com/javase/8/docs/api/ 2023.02.06 - [JAVA공부/자료구조] - [JAVA/자료구조] List 2. Set 인터페이스 객체를 순서와 관계없이 저장, 관리 아이디, 사번, 주민번호 등 유일한 값을 관리하는데 유용 중..