본문 바로가기

Data Structure/Linear4

[자료구조] 연결 리스트(Linked List) 연결 리스트란? 배열과의 비교 연결리스트는 배열과 마찬가지로 선형적인 자료 구조이다. 하지만 연속된 메모리 공간에 구성 요소들이 할당되어 있는 배열과 달리, 연결리스트는 각 요소가 임의의 공간에 분리되어 존재한다. 연결리스트의 각 노드(node)는 다음 노드를 가리키는 포인터(pointer)를 가지고 있다. 따라서, 각 노드에 대한 직접적인 접근은 불가능하다. 연결 리스트의 효용 동적인 자료구조 - 요소의 삽입 및 삭제에 따라 자료의 크기를 동적으로 관리할 수 있다. 효율적인 삽입/삭제 - 요소의 삽입 및 삭제 시, 배열에서와 같이 따라 다른 요소들의 위치를 이동시킬 필요 없이 요소들 간의 연결 정보를 업데이트 해주는 것만으로 해당 작업을 수행할 수 있다. 효율적인 메모리 사용 - 자료구조의 크기가 동적.. 2023. 2. 3.
[Java / 자료구조] 데크(Deque) Deque의 개념 Deque(double-ended queue)는 양방향에서 데이터를 처리할 수 있는 선형 자료구조이다. Deque의 조상은 Queue이며, 구현체로는 ArrayDeque와 LinkedList 등이 있다. Deque = Stack + Queue 덱은 스택과 큐를 하나로 합쳐놓은 것과 같으므로 스택으로 사용할 수도 있고, 큐로 사용할 수도 있다. Deque Stack Queue offerLast() push() offer() pollLast() pop() - pollFirst() - poll() peekFirst() - peek() peekLast() peek() - 관련 Java 메서드 삽입 / 제거 기타 removeFirstOccurence(Obect O) - 덱의 앞쪽에서부터 탐색하여.. 2023. 2. 1.
[자료구조] 해시테이블(HashTable) vs 해시맵(HashMap) 비교 공통점 HashTable 과 HashMap 모두 Map 인터페이스의 구현체이다. 따라서 다형성에 따라 아래와 같이 Map으로 HashTable과 HashMap 객체를 받아 올 수 있다. // HashTable Hashtable ht = new Hashtable(); // HashMap HashMap hm = new HashMap(); Map map1 = ht; Map map2 = hm; 차이점 HashTable HashMap Key에 Null 사용 가능 여부 X O Thread-Safe O (멀티 스레드 환경에서 우수) X (싱글 스레드 환경에서 우수) synchronizedMap, ConcurrentHashMap 등으로 해결 가능 2023. 1. 17.
[자료구조] 배열(Array) 1. 배열이란? 배열은 연속된 메모리 공간에 순차적으로 저장된 데이터 모음이다 같은 타입의 데이터로만 구성된다 배열 객체를 선언할 때 그 크기가 정해지며, 이후 변경할 수 없다 배열을 구성하는 각각의 값을 요소(element)라고 하며, 해당 요소의 위치를 인덱스(index)라고 한다 2. 장・단점 장점 인덱스를 이용한 접근이 가능하기 때문에 모든 요소에 빠르게 접근 가능 (배열의 크기와 관련 없이) 단점 데이터의 추가/삭제에 드는 비용이 큼 배열을 선언한 후에는 크기를 변경할 수 없음(정적 메모리) 3. 배열이 활용되는 경우 데이터의 추가, 삭제가 자주 일어나지 않을 때 특정 데이터에 대한 빠른 접근이 필요할 때 값의 저장 순서가 중요할 때 2023. 1. 17.