프로그래밍/자료구조(3)
-
Deque = Vector + List
deque는 vector의 특성과 list의 특성이 섞여 있다. vector의 특성: push_front(), pop_front(), push_back(), pop_back() 동작이 O(1) 복잡도로 동작한다 dynamic size 모든 원소에 대해 임의 접근 동작이 O(1) 시간 복잡도로 동작한다 list 특성 insertion deletion 덱 중간에서 원소 삽입 또는 삭제는 O(n) 시간 복잡도로 동작하며, 실제로는 최대 n/2 단계로 동작 (n은 덱의 크기) vector의 메모리 형식을 따르면서 리스트처럼 삽입과 삭제가 vector보다 자유로운 deque의 특성을 자세히 알아보기 위해 deque의 wrapper을 알아보았다. //Daque wrapper #include #include temp..
2024.03.15 -
ADT & Composite Data Type
Abstract Data Type (ADT) Data Structure 추상적 데이터 유형에서 복합 데이터 멤버를 구현 구성 요소 요소의 배열은 각 요소의 액세스 방법에 영향을 미친다 요소의 배열과 엑세스 방법을 모두 캡슐화할 수 있다 TImeline ADT → implementation(구현) → Application ADT Operations Constructor Transformer Observer Iterator (컨테이너 객체) Composite Data Type The Forms of Composite Data type Unstructured : Components are not organized with respect to one another ex) classe and structs Str..
2024.03.15 -
Array, List, Vector
1.1 자료구조의 유형 1.1.1 연속된 자료 구조 단일 메모리 chunck 정적 배열, 동적 배열 시간복잡도(O(1)) 1.1.2 연결된 자료 구조 노드(node)라 하는 chunck 데이터 저장 시간복잡도(O(n)) 1.2 std::forward_list 연속 자료 → 연결 리스트 포인터 new와 delete 연산자를 이용하여 메모리를 할당하고 해제 1.3 std::array + at(index) 배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조이다. 배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. 인덱스를 사용하여 값에 바로 접근할 수 있다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삽입하거나 삭제하려면 해당 인덱스 주..
2024.03.10