LIST 2

자료구조 List에 대한 설명과 구현

리스트란? 각각의 데이터가 자신의 다음 데이터(또는 이전, 다음 데이터 모두)의 위치를 가지고 있는 자료구조 데이터가 메모리에서 연속적으로 위치하고 있지는 않다. 리스트 종류 Singly Linked List - 데이터가 자신의 다음 데이터의 위치만 가지고 있다. Double Linked List - 데이터가 자신의 이전과 다음 데이터의 위치를 가지고 있다. Circular Linked List - 마지막 데이터가 처음 데이터의 위치를 가지고 있다. 리스트 연산의 시간 복잡도 데이터를 추가(임의의 위치) - O(1) 데이터를 제거(임의의 위치) - O(1) 데이터 확인/변경 - O(N) 리스트 구현(Singly Linked List) #include using namespace std; template ..

C++ STL 벡터, 리스트, 덱 비교

C++ STL 벡터, 리스트, 덱 비교 개인적으로 까먹지 않으려고 적어두는 글. 벡터 vector v; // 컴파일러 버전에 따라 vector v;로 써야 인식이 되는 경우도 있다. vector v; 1) Vector 특징 배열과 유사하다. 배열의 크기는 고정이지만, 벡터의 크기는 동적으로 변한다. 중간에 데이터 삽입, 삭제가 용이하지 않다. 데이터를 순차적으로 저장한다. 검색 속도가 느리다. 랜덤 접근이 용이하다. 2) Vector를 사용해야 하는 경우 중간의 데이터 삽입이나 삭제가 없을 경우 순차적으로 저장된 데이터를 빈번하게 검색하지 않을 경우 특정 데이터가 저장된 위치를 파악하여 랜덤 접근할 경우 ex) v [5] 3) 장점 개별 원소들을 인덱스로 접근이 가능하다. 원소를 컨테이너의 끝에 삽입 /..