연결 리스트는 데이터를 포함한 노드를 포인터로 연결하여 공간적 효율성을 극대화한 자료구조이다.
① 장점
int array[5]={1,2,3,4,5};
② 단점
① Single linked list(SLL)
: next 포인터만 가짐
② double linked list
: next 포인터와 prev 포인터를 가짐
③ circular double linked list
: next 포인터와 prev 포인터를 가지며, 마지막 노드의 next포인터가 헤드 노드를 가르킴
#include <iostream>
using namespace std;
int main(){
list<int> a;
for(int i=0;i<10;i++) a.push_back(i);
for(int i=0;i<10;i++)a.push_front(i);
auto it = a.begin(); it++;
// it가 a의 2번 째 원소를 가르킴
a.insert(it,1000);
for(auto it : a) cout<<it<<" ";
}
Random Access는 배열이 더 효율적인 반면 데이터의 추가와 삭제는 연결 리스트가 더 빠르다.