목차
Input
Output
Explanation
백엔드 개발 C++ 주어진 이진 검색 트리에서 더 큰 값을 모두 각 노드에 추가합니다.

주어진 이진 검색 트리에서 더 큰 값을 모두 각 노드에 추가합니다.

Sep 07, 2023 pm 12:17 PM
마디 이진 검색 트리 더 큰 값

주어진 이진 검색 트리에서 더 큰 값을 모두 각 노드에 추가합니다.

BST 또는 이진 검색 트리는 모든 왼쪽 노드가 루트 노드 값보다 작은 값을 갖고 모든 오른쪽 노드가 루트 노드 값보다 큰 값을 갖는 이진 트리 형태입니다. 이 문제에서는 이진 트리를 가져와 현재 노드 값보다 큰 모든 값을 추가합니다. "BST의 각 노드에 더 큰 값을 모두 추가"하는 문제는 BST의 경우 현재 노드 값보다 큰 모든 노드 값을 해당 노드 값에 추가하는 것으로 단순화됩니다.

BST 문제 설명의 각 노드에 더 큰 값의 노드를 모두 추가합니다.

BST(이진 검색 트리)가 주어지면 각 노드에 더 큰 값의 모든 노드의 합계를 추가해야 합니다.

Input

    10
    /  \
   /    \
  5     20
 / \   / \
1   7   1  5
로그인 후 복사

Output

      70
    /   \
   82   45
  / \   / \
83 77  60 25
로그인 후 복사

Explanation

이 프로그램은 이진 검색 트리를 노드의 값이 모든 더 큰 요소의 합과 노드의 원래 값을 더한 이진 트리로 변환합니다.

이진 검색 트리 솔루션의 각 노드에 더 큰 값을 모두 추가합니다.

우리는 역중위 순회(왼쪽 하위 트리 대신 오른쪽 하위 트리를 먼저 재귀적으로 호출)를 사용하고 변수를 유지하여 저장합니다. 지금까지 횡단했습니다.

그런 다음 이 합계를 사용하여 현재 노드의 값을 수정합니다. 먼저 해당 값을 합계에 추가한 다음 노드의 값을 이 합계로 바꿉니다.

#include <iostream >
using namespace std;
struct node {
   int data;
   node *left;
   node *right;
};
node *newNode(int key) {
   node *temp=new node;
   temp->left=NULL;
   temp->right=NULL;
   temp->data=key;
   return temp;
}
void Inorder(node *root) {
   if(!root)
      return;
   Inorder(root->left);
   cout<<root->data<<" ";
   Inorder(root->right);
}
node *Insert(node *root,int key) {
   if(!root)
      return newNode(key);
   if(key<root->data)
      root->left=Insert(root->left,key);
   else
      root->right=Insert(root->right,key);
   return root;
}
void RevInorderAdd(node *root,int &sum) {
   if(!root)
      return;
   RevInorderAdd(root->right,sum);
   sum+=root->data;
   root->data=sum;
   RevInorderAdd(root->left,sum);
}
void AddGreater(node *root) {
   int sum=0;
   RevInorderAdd(root,sum);
}
int main() {
   /* Let us create following BST
      10
      / \
     5   20
    / \  / \
  1  7 15 25 */
   node *root = NULL;
   root = Insert(root, 10);
   Insert(root, 20);
   Insert(root, 25);
   Insert(root, 15);
   Insert(root, 5);
   Insert(root, 7);
   Insert(root, 1);
   Inorder(root);
   cout<<endl;
   AddGreater(root);
   Inorder(root);
   cout<<endl;
   return 0;
}
로그인 후 복사

위 내용은 주어진 이진 검색 트리에서 더 큰 값을 모두 각 노드에 추가합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

노드 X에서 시작하여 하위 트리의 최소 가중치와 최대 D의 거리를 쿼리합니다. 노드 X에서 시작하여 하위 트리의 최소 가중치와 최대 D의 거리를 쿼리합니다. Aug 25, 2023 am 11:25 AM

컴퓨터 프로그래밍을 할 때 특정 노드에서 시작되는 하위 트리의 최소 가중치를 찾아야 하는 경우가 있습니다. 단, 해당 하위 트리에는 지정된 노드에서 D 단위 이상 떨어진 노드가 포함될 수 없습니다. 이 문제는 그래프 이론, 트리 기반 알고리즘, 네트워크 최적화 등 다양한 분야와 응용 분야에서 발생합니다. 하위 트리는 더 큰 트리 구조의 하위 집합으로, 지정된 노드가 하위 트리의 루트 노드 역할을 합니다. 하위 트리에는 루트 노드의 모든 자손과 해당 연결 가장자리가 포함됩니다. 노드의 가중치는 해당 노드에 할당된 특정 값을 나타내며, 이는 중요도, 중요도 또는 기타 관련 측정항목을 나타낼 수 있습니다. 이 문제의 목표는 루트 노드에서 최대 D 단위 떨어진 노드로 하위 트리를 제한하면서 하위 트리의 모든 노드 중에서 최소 가중치를 찾는 것입니다. 다음 기사에서는 하위 트리에서 최소 가중치를 마이닝하는 복잡성에 대해 자세히 살펴보겠습니다.

큐를 사용하여 이진 검색 트리에서 경로를 바꾸는 C++ 코드 큐를 사용하여 이진 검색 트리에서 경로를 바꾸는 C++ 코드 Sep 14, 2023 pm 07:21 PM

예를 들어, 이진 검색 트리가 주어지면 특정 키에서 경로를 바꿔야 합니다. 솔루션을 찾는 방법 이 접근 방식에서는 대기열을 생성하고 루트 노드를 얻을 때까지 모든 노드를 푸시합니다. p>예제 #include<bits/stdc++.h>usingnamespacestd;structnode{ intkey structnode*left,*right;};structnode*newNode(intitem){&nb;

Vue와 jsmind를 통해 마인드맵의 노드 복사 및 잘라내기 기능을 구현하는 방법은 무엇입니까? Vue와 jsmind를 통해 마인드맵의 노드 복사 및 잘라내기 기능을 구현하는 방법은 무엇입니까? Aug 15, 2023 pm 05:57 PM

Vue와 jsmind를 통해 마인드맵의 노드 복사 및 잘라내기 기능을 구현하는 방법은 무엇입니까? 마인드맵은 우리의 생각을 정리하고 사고 논리를 정리하는 데 도움이 되는 일반적인 사고 도구입니다. 노드 복사 및 잘라내기 기능은 마인드맵에서 흔히 사용되는 작업으로, 기존 노드를 보다 편리하게 재사용하고 사고 정리의 효율성을 높일 수 있습니다. 이 글에서는 Vue와 jsmind라는 두 가지 도구를 사용하여 마인드맵의 노드 복사 및 잘라내기 기능을 구현해 보겠습니다. 먼저 Vue와 jsmind를 설치하고 생성해야 합니다.

Python에서 이진 검색 트리를 구현하는 방법 Python에서 이진 검색 트리를 구현하는 방법 Jun 10, 2023 am 08:57 AM

BST(Binary Search Tree)는 이진 트리를 기반으로 하는 검색 알고리즘입니다. 그 특징은 트리에 있는 각 노드의 왼쪽 하위 트리의 값이 이 노드의 값보다 작은 반면, 오른쪽 하위 트리의 값은 이 노드의 값보다 크다는 것입니다. 따라서 BST 검색 및 삽입 연산의 시간복잡도는 O(logN)이다. Python에서 이진 검색 트리를 구현하는 방법은 상대적으로 간단합니다. Python에는 두 개의 내장 데이터 구조인 목록과 사전이 있으며 둘 다 이진 트리를 구현하는 데 사용할 수 있기 때문입니다. 이것에

C++의 이진 힙과 이진 검색 트리 C++의 이진 힙과 이진 검색 트리 Aug 22, 2023 pm 04:10 PM

C++ 프로그래밍에서 이진 힙과 이진 검색 트리는 일반적으로 사용되는 두 가지 데이터 구조로 유사점이 있지만 차이점도 있습니다. 이 기사에서는 이진 힙 및 이진 검색 트리의 개념, 기본 작업 및 응용 시나리오를 각각 소개합니다. 1. 이진 힙 1.1 개념 이진 힙은 다음 두 가지 속성을 만족하는 완전한 이진 트리입니다. 1.1.1 힙 순서 힙 순서란 이진 힙에서 각 노드의 값이 노드보다 크거나 작지 않다는 것을 의미합니다. 상위 노드의 값입니다. 여기서는 최대 힙을 예로 들어보겠습니다. 즉, 루트 노드의 값은 전체 트리에서 가장 큰 값이며,

js에서 노드를 삭제하는 방법은 무엇입니까 js에서 노드를 삭제하는 방법은 무엇입니까 Sep 01, 2023 pm 05:00 PM

js에서 노드를 삭제하는 방법은 다음과 같습니다. 1. RemoveChild() 메서드는 부모 노드에서 지정된 자식 노드를 제거하는 데 사용됩니다. 첫 번째 매개 변수는 삭제할 자식 노드이고 두 번째 매개 변수는 다음과 같습니다. 2. parentNode.removeChild() 메소드는 하위 노드를 삭제하기 위해 상위 노드를 통해 직접 호출될 수 있습니다. 3. Remove() 메소드는 상위 노드를 지정하지 않고 노드를 직접 삭제할 수 있습니다. innerHTML 속성은 노드 내용을 삭제하는 데 사용됩니다.

Jul 24, 2023 pm 11:17 PM

Java는 Math 클래스의 max() 함수를 사용하여 두 숫자의 더 큰 값을 얻습니다. Java 프로그래밍에서는 종종 두 숫자의 크기를 비교한 다음 일부 작업을 수행하기 위해 더 큰 숫자를 선택해야 합니다. Java의 Math 클래스는 수학 연산을 위한 많은 함수를 제공하며, 그 중 max() 함수는 두 숫자의 더 큰 값을 얻는 데 도움이 될 수 있습니다. Math.max() 함수는 다음과 같이 정의됩니다. publicstaticintmax(inta,intb) 이 함수는 두 개의 정수를 허용합니다.

C#을 사용하여 이진 검색 트리 알고리즘을 작성하는 방법 C#을 사용하여 이진 검색 트리 알고리즘을 작성하는 방법 Sep 19, 2023 pm 01:03 PM

C#을 사용하여 이진 검색 트리 알고리즘을 작성하려면 특정 코드 예제가 필요합니다. 이진 검색 트리(BST라고 함)는 빠른 삽입, 검색 및 삭제 작업의 특성을 갖는 일반적으로 사용되는 데이터 구조입니다. C#에서는 개체 지향 접근 방식을 사용하여 이진 검색 트리 알고리즘을 작성할 수 있습니다. 먼저 왼쪽 및 오른쪽 하위 노드에 대한 두 개의 포인터와 값을 포함하는 이진 검색 트리 노드에 대한 클래스를 정의해야 합니다. 코드는 다음과 같습니다: publicclassBST

See all articles