원형 연결 리스트 삭제 연산

Programming/Data Structure 2015. 12. 1. 20:49

<원형 연결 리스트 삭제 연산>


원형 연결 리스트 CL에서 포인터 pre가 가리키는 노드의 다음 노드를 삭제하고 삭제한 노드는 자유 공간 리스트에 반환하는 연산이다.




1. if (CL = null) then error;

공백 리스트일 경우 삭제할 노드가 없기 때문에 에러

 

2. else {                         

      old ← pre.link;            // ①

      pre.link ← old.link;      // ②

      if(old = CL) then          // ③ - 1

         CL  old.link;         // ③ - 2

      returnNode(old);         // 

   }

 

① old ← pre.link;

이전 노드(pre)의 다음 노드를 삭제할 노드로 지정


 pre.link ← old.link;

이전 노드(pre)의 다음 노드를 old.link인 삭제할 노드의 다음 노드로 지정

한마디로 old를 건너뛴다는 의미


③ - 1 if(old = CL) then

삭제할 노드가 원형 리스트의 첫 번째 노드일 경우



③ - 2 CL  old.link;

CL(리스트 포인터)가 old.link인 첫번째 노드를 가리키게 한다.

두번째 노드가 리스트의 첫 번째 노드를 가리키게 한다.





Copyrightⓒ2014 By 한빛아카데미(주)


'Programming > Data Structure' 카테고리의 다른 글

이중 연결 리스트 삽입 연산  (2) 2015.12.02
이중 연결 리스트  (0) 2015.12.01
원형 연결 리스트, 삽입  (0) 2015.12.01
단순 연결리스트의 탐색  (0) 2015.12.01
단순 연결 리스트의 삭제  (0) 2015.12.01
posted by 경원구