Programming
Linked List
Ms_Tony
2017. 12. 7. 12:26
링크드리스트
데이터의 순서가 순서대로 되어있지 않음.
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