링크드리스트
데이터의 순서가 순서대로 되어있지 않음.
1번 뒤에 2번이 있다는 보장이 없음
노드(링크)에 의해 논리적으로 연결되어 있음.
임의 접근이 불가능함
현재의 노드가 알 수 있는 건 바로 내 다음의 노드의 존재만이기때문
데이터 삽입의 강점이 있음
물리적인 메모리 이동업싱 요소간의 링크만 조작하면 되므로 속도에 유리.
데이터 생성 -> 각 노드의 연결 후 이전 노드 삭제
데이터 삭제도 삽입과 같은 방식으로 진행
삭제할 노드 앞뒤를 먼저 연결한 후, 삭제할 데이터의 노드를 삭제 후 데이터삭제
메모리의 낭비가 없음
추가 삭제 시 바로 메모리 할당을 하기 떄문.
한 노드에 여러개의 변수 또는 데이터값을 포함할 수 있다.
다음 노드가 NULL을 가리킬 경우, 연결 리스트의 끝이라는 뜻.
Single LinkedList와 Double LinkedList 두종류로 존재함.
Double LinkedList의 경우엔 내 다음 노드 뿐만 아니라, 이전 노드의 주소정보까지 가지고있음.
// Single LinkedList 예시
struct Node {
int value; // 데이터
Node *next; // 링크
}; 예제 URL : https://github.com/TonyChoiMS/DataStructure/tree/master/DataStructureLib/DataStructureLib
'Programming' 카테고리의 다른 글
Singleton Pattern (0) | 2017.12.07 |
---|---|
객체지향 프로그래밍의 3요소 5원칙! (0) | 2017.12.07 |
MVP Pattern 이란?! (1) | 2017.12.07 |
Dependency (의존성) 이란?? (0) | 2017.12.07 |