Programming

Linked List

Ms_Tony 2017. 12. 7. 12:26

링크드리스트

  1. 데이터의 순서가 순서대로 되어있지 않음.

    1. 1번 뒤에 2번이 있다는 보장이 없음

    2. 노드(링크)에 의해 논리적으로 연결되어 있음.

  2. 임의 접근이 불가능함

    1. 현재의 노드가 알 수 있는 건 바로 내 다음의 노드의 존재만이기때문

  3. 데이터 삽입의 강점이 있음

    1. 물리적인 메모리 이동업싱 요소간의 링크만 조작하면 되므로 속도에 유리.

    2. 데이터 생성 -> 각 노드의 연결 후 이전 노드 삭제

  4. 데이터 삭제도 삽입과 같은 방식으로 진행

    1. 삭제할 노드 앞뒤를 먼저 연결한 후, 삭제할 데이터의 노드를 삭제 후 데이터삭제

  5. 메모리의 낭비가 없음

    1. 추가 삭제 시 바로 메모리 할당을 하기 떄문.

  6. 한 노드에 여러개의 변수 또는 데이터값을 포함할 수 있다.

  7. 다음 노드가 NULL을 가리킬 경우, 연결 리스트의 끝이라는 뜻.

  8. Single LinkedList와 Double LinkedList 두종류로 존재함.

    1. Double LinkedList의 경우엔 내 다음 노드 뿐만 아니라, 이전 노드의 주소정보까지 가지고있음.



// Single LinkedList 예시

struct Node {

int value; // 데이터

Node *next; // 링크

}; 예제 URL : https://github.com/TonyChoiMS/DataStructure/tree/master/DataStructureLib/DataStructureLib