보통 Node에 대한 class를 따로 잡고, LinkedList에대한 클래스를 따로 잡고
LinkedList안에 Node를 포함시켜서 짰거든요.
그래서 insert, search, delete 모두 LinkedList의 멤버함수로 하고.
그리고, 소멸자는 ~LinkedList를 이용해서 Node에 대한 메모리를 다 날려버렸고.
그런데 말이죠, Node의 소멸자 수준에서 하면 안되나염?
즉, ~LinkedList를 이용하는 것은 아래와 같은 느낌으로 노드를 날려버리고(head는 LinkedList 의 멤버 변수로 가지고 있는 노드를 의미합니당)
1 2 3 4 5 6 7 8 9 10 11 12 | ~LinkedList() { node* l, *p; l = head; while( l != NULL) { p = l; l = l->n; delete p; } } | cs |
이런 느낌이라면, 제가 갑자기 든 생각은 아래처럼 하고, 나머진 node class에 맡기느 거죠.
1 2 3 4 | ~LinkedList() { delete head; } | cs |
그럼 노드 하나 지우면 뒤에 연결된 노드들까지 다 지워버림???
그럼 링크드리스트 조작이 매우 고통스러울것같은데
~node에 그렇게 만들어두면 그럴거 같은데
아 그렇네
아 맞네
아 그래서 그랬네
ㄳㄳ
사실 노드만 가지고 만들기도 함.. C에서 한 적 있는데 근데 좀 짜증남
아주 개ㄱㅏㅌ음
누가 우리 츄럴이를 개같게 만들었는가
캐쉬랩이요 ㅎ