참조계수란게 리스트(L)의 참조계수가 0이 아닐때

L를 삭제해 버리면 L를 참조하고 있던 리스트들이 호구가 되니까

그걸 방지해 주기 위해 쓰는거라고 보면 되는거야?

그럼 이 알고리즘에서 

removeList(L)
        L.ref ← L.ref - 1;    // 참조계수는 자신을 참조하는 리스트 개수+1이기땜에 하나 줄여서 판단
        if(L.ref≠0) then return; // L의 참조계수가 0이 아니면 (L을 참조하는 리스트가 있으면) 함수 끝냄
        p ← L ; 
        while(p.link≠null) do {
                p ← p.link;
                if p.tag = 1 then removeList(p.data); // p가 가리키는 노드가 다른 리스트를 참조하면 ..그 리스트도 삭제?
        }
        p.link ← Free;
        Free ← L;
end removeList()

if(L.ref≠0) then return; 이 부분이 삭제를 방지해준다는거 같은뎅..

주석은 내가 임의로 해석을 단건데 순환되는 부분을 잘 모르겠음... L리스트가 참조하는 모든리스트가 참조하는 모든리스트를 다 삭제해버리는건가? ;;;