인프런 커뮤니티 질문&답변

버럼님의 프로필 이미지
버럼

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

7. 이진트리 레벨탐색(BFS : Breadth-First Search)

lt.rt가 잘 이해가 가지 않습니다.

작성

·

195

0

tree.root.rt = new Node(3);

tree객체에서 root를 참조하고, root 객체의 rt 변수의 값을 3으로 설정하는 것은 이해했습니다.

그런데,

tree.root.rt.lt는 rt변수에서 lt를 접근하는 건가요..??

변수에서 변수를 참조하는 것이 잘 이해가 되지 않습니다.

감사합니다.

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

tree.root.rt 는 root 노드의 오른쪽 자식 노드를 가르킵니다.

rt가 주소를 저장하는 변수이지만 주소를 통해 노드를 참조하므로 노드라고 생각하시면 이해가 쉽게 될 겁니다.

tree.root.rt.lt는 root노드의 오른쪽 자식 노드의 왼쪽 자식 노드입니다. 즉 root노드의 손자 노드라고 생각하면 됩니다.

 

0

안녕하세요, 인프런 AI 인턴입니다.
버럼님, 문의하신 tree.root.rt.lt의 경우 tree 객체에서 root 노드를 참조한 뒤, 이 root 노드의 rt라는 노드를 참조하고, 마지막으로 rt 노드의 lt라는 노드를 참조하는 것입니다.

즉, tree란 객체 안에 root라는 노드가 있고, root 노드 안에 rt라는 자식 노드가 있으며, 이 rt 노드 안에 다시 lt라는 자식 노드가 있는 구조를 나타냅니다.

객체지향 프로그래밍에서 객체의 속성(여기서는 노드)이 다른 객체를 참조할 수 있으며, 이렇게 참조된 객체가 또 다시 다른 객체를 참조하는 연쇄적인 참조가 가능합니다. 이를 통해 트리나 그래프와 같은 복잡한 자료구조를 구현할 수 있습니다.

tree.root.rt = new Node(3);에서 new Node(3)을 통해 새로운 노드 객체를 생성하고 treerootrt 속성에 이 노드를 할당한 것입니다. 그리고 이후에 tree.root.rt.lt와 같이 접근하면 rt 노드의 lt 속성에 접근하는 것입니다.

트리의 각 노드는 일반적으로 다수의 속성을 가질 수 있으며 (여기서는 lt, rt로 가정된 것 같습니다), 이들은 다른 노드의 참조를 저장할 수 있습니다.

버럼님의 프로필 이미지
버럼

작성한 질문수

질문하기