Data Structure5 [자료구조] 연결 리스트(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. [자료구조] 트리 (Tree) 1. 트리(Tree) 개요 노드와 링크로 구성된 자료 구조 계층적 구조를 나타낼 때 사용할 수 있음 트리의 구조 노드(Node): 자료 값을 담고 있는 단위 에지(Edge): 노드 간의 연결선. (=간선, link, branch) 루트 노드(Root): 부모가 없는 노드, 트리의 최상단에 위치 잎새 노드(Leaf): 자식이 없는 노드 내부 노드(Internal): 잎새 노드를 제외한 모든 노드 부모(Parent): 직접 연결된 두 노드 중 상위의 노드 자식(Child): 직접 연결된 두 노드 중 하위의 노드 형제(Sibling): 같은 부모를 가지는 노드 깊이(Depth): 루트에서 어떤 노드까지의 간선의 수. 루트의 깊이는 0. 레벨(Level): 트리의 특정 깊이를 가지는 노드 집합 높이(Height.. 2023. 1. 20. [자료구조] 해시테이블(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. 이전 1 2 다음