[자료구조]연결 리스트(Linked List)

2012. 1. 18. 19:09머리쓰기/자료구조


연결 리스트 ( Linked List)
: 여러 데이터의 집합을 서로 연결시키는 형식.
  데이터가 모여 있는 그룹인 노드와 노드를 연결시키는 링크로 이루어져 있습니다. 



>종류<



1) 단방향  연결 리스트 
: 단순히 한쪽 방향으로만 연결된 단방향 링크드 리스트

-> 자료 생성시, 노드가 생성되고 포인터는 생성된 포인터를 가리킵니다. 


2) 쌍방향 or( 양방향 ) 연결 리스트 
: 양쪽 방향으로 연결된 쌍방향 링크드 리스트

-> 자료 생성시, 노드가 생성되고 전 노드의 포인터는 생성된 포인터를 가리킵니다.  
    그리고 생성된 노드의 Prev 포인터는 전 노드를 가리킵니다.

3) 환형 연결 리스트
: 고리의 처음과 끝이 함께 연결되어 있는 링크드 리스트

-> 양방향과 같지만, 마지막 노드의 Next 포인터는 처음을 가리키는 부분이 추가됩니다.

 
일반적인 단방향 연결 리스트를 아래처럼 사용한다면

typedef struct LinkList* pointer;
struct LinkList
{
int data;
pointer next;
}; 

양방향과, 환형의 경우 전,후를 가르치는 포인터가 하나 더 있다고 생각하시면 편합니다.

struct LinkList
{
int data;
pointer next;
        pointer prev;  
};