Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 문자열로 표현되는 트리의 k 번째 수준에 있는 노드의 곱

<시간/>

문자열 형식의 데이터가 있는 노드 트리가 주어지고 작업은 이진 트리에서 k 번째 수준에 있는 노드의 곱을 찾는 것입니다. 트리의 모든 노드에는 데이터 부분, 왼쪽 하위 트리에 대한 왼쪽 포인터, 오른쪽 하위 트리에 대한 오른쪽 포인터의 세 가지가 있습니다.

이진 트리의 수준은 숫자 0에서 시작하여 모든 양수가 될 수 있는 'n'까지 갈 수 있습니다. 따라서 우리는 'k' 레벨이 주어지고 프로그램은 주어진 'k' 레벨에서 노드의 곱을 계산해야 합니다.

이진 트리에서 k=2의 값이 주어진다면

따라서 레벨 2의 노드는 -40, 50, 60입니다.

제품=40*50*60 =1,20,000

C++에서 문자열로 표현되는 트리의 k 번째 수준에 있는 노드의 곱

입력

(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