링크드리스트 보충

한빛 미디어 자료구조 - 이중 연결 리스트

데이터 구조
typedef struct Dnode{
	struct Dnode *llink;
    char data[5];
    struct Dnode *rlink;
}

이중연결리스트에서의 원소 삽입 방법

(1) 삽입할 노드르 가져온다
(2) 새 노드의 데이터 필드에 값을 저장한다
(3) 새 노드의 왼쪽 노드의 오른쪽 링크(rlink)를 새 노드의 오른쪽 링크(rlink)에 저장한다
(4) 그리고 왼쪽 노드의 오른쪽 링크(rlink)에 새 노드의 주소를 저장한다.
(5) 새 노드의 오른쪽 노드의 왼쪽 링크(llink)를 새 노드의 왼쪽 링크(llink)에 저장한다.
(6) 그리고 오른쪽 노드의 왼쪽 링크(llink)에 새 노드의 주소를 저장한다.

  
이중연결리스트 원소 삭제 방법
(1) 삭제할 노드의 오른쪽 노드의 주소(old.rlink)를 삭제할 노드의 왼쪽 노드(old.llink)의 오른쪽 링크(rlink)에 저장한다
(2) 삭제할 노드의 왼쪽 노드의 주소 (old.link)를 삭제할 노드의 오른쪽 노드(old.rlink)의 왼족 링크(llink)에 저장한다.
(3)삭제한 노드를 자유 공간 리스트에 반환한다.

참고자료

프로그래밍 프로젝트

Gunny 더블링크드 리스트 구현

0%