인프런 커뮤니티 질문&답변
Node root의 선언 위치
작성
·
238
0
안녕하세요. 문제를 다시 풀던 중 궁금점이 생겨 질문을 남기게 되었습니다. 본 강의에서 Node root를 메인 메서드 밖에 선언하였는데 아래 코드와 같이
import java.util.*;
class Node{
int data;
Node lt, rt;
public Node(int n){
data = n;
lt = rt = null;
}
}
public class Practice{
public void DFS(Node root){
if(root == null)
return;
else{
DFS(root.lt);
System.out.print(root.data + " ");
DFS(root.rt);
}
}
public static void main(String[] args){
Practice t = new Practice();
Node root = new Node(1);
root.lt = new Node(2);
root.rt = new Node(3);
root.lt.lt = new Node(4);
root.lt.rt = new Node(5);
root.rt.lt = new Node(6);
root.rt.rt = new Node(7);
t.DFS(root);
}
}
Node root를 메인메소드 안에서 선언하여도 정상적으로 작동하는 것 처럼 보였습니다.
1. 제가 올린 코드처럼 Node root를 메인메서드 안에 선언하는 것이 문제가 되는 부분이 있을까요?
2. 본 강의에서 처럼 Node root를 메인메서드 밖에다 선언하는 특별한 이유가 있나요?
3. 메인메서드 안에 선언하는 것과 밖에 선언하는 것에 차이점이 있나요?
퀴즈
재귀 함수가 자신을 호출할 때, 매개변수, 지역 변수, 복귀 주소 등이 저장되는 메모리 영역의 구조는 무엇일까요?
힙 영역 (Heap area)
스택 프레임 (Stack Frame)
큐 (Queue)
데이터 세그먼트 (Data Segment)





