문자열 형식의 데이터가 있는 노드 트리가 주어지고 작업은 이진 트리에서 k 번째 수준에 있는 노드의 곱을 찾는 것입니다. 트리의 모든 노드에는 데이터 부분, 왼쪽 하위 트리에 대한 왼쪽 포인터, 오른쪽 하위 트리에 대한 오른쪽 포인터의 세 가지가 있습니다.
이진 트리의 수준은 숫자 0에서 시작하여 모든 양수가 될 수 있는 'n'까지 갈 수 있습니다. 따라서 우리는 'k' 레벨이 주어지고 프로그램은 주어진 'k' 레벨에서 노드의 곱을 계산해야 합니다.
이진 트리에서 k=2의 값이 주어진다면
따라서 레벨 2의 노드는 -40, 50, 60입니다.
제품=40*50*60 =1,20,000
입력
(1(2(3()())(4()(5()()))(6(7()())(8()()))K =1사전>출력
k 수준에서 노드의 곱 =12입력
(0(5(6()())(4()(9()()))(7(1()())(3()()))"k =2사전>출력
k 수준에서 노드의 곱 =72알고리즘
StartStep 1→ k번째 레벨에서 노드를 계산하는 함수 선언 int product(string tree, int k) int level =-1 선언 int product =1 선언 int size =tree.length() Loop For int i =0 and i예시
#include네임스페이스 std;//k번째 레벨에서 제품 찾기int product(string tree, int k){ int level =-1; 정수 곱 =1; 정수 크기 =tree.length(); for (int i =0; i 출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
k 수준에서 노드의 곱 =12