지금 이진트리 부터 B+트리까지 객체지향적으로 짜고 있음.
노드 클래스와 그걸 컨트롤할 트리 클래스로 나눠서 만들었음.
기본 트리랑 이진트리는 끝냈고, 상속관계가 깔끔해서 이진 힙 트리 등은 쉽게 짤 수 있음.
근데 힙트리 짜다가 갑자기 현타가 옴. 얼마전에 힙정렬 할때 이진 힙은 그냥 배열에다 넣어서 했거든.
근데 이걸 각 노드를 객체로 두고 부모 노드 자식노드에 포인터로 접근 하는 등.. 이렇게 하니 뭔가 비효율적인거 같음.
하면서 friend에 pure virtual에 여러모로 클래스 공부는 되긴 했는데 지금까지 뻘짓한 건가 싶음.
객체 지향적으로 짜더라도 노드는 별도의 객체로 만들지 말고,
실제 데이터는 트리 객체에 배열로 저장하고 접근, 추가, 제거 등만 함수로 감싸는게 맞는 방식이려나?
댓글 0