목차
문제 이해하기
깊이 우선 탐색을 사용한 순회
출력
결론
백엔드 개발 C++ 이진 트리의 이등변삼각형 수

이진 트리의 이등변삼각형 수

Sep 05, 2023 am 09:41 AM
수량 이진 트리 이등변삼각형

이진 트리는 각 노드가 최대 2개의 하위 노드를 가질 수 있는 데이터 구조입니다. 이 아이들을 각각 왼쪽 아이들, 오른쪽 아이들이라고 부릅니다. 부모 배열 표현이 주어졌다고 가정하면 이를 사용하여 이진 트리를 만들어야 합니다. 이진 트리에는 여러 개의 이등변삼각형이 있을 수 있습니다. 우리는 이 이진 트리에서 가능한 이등변삼각형의 총 개수를 찾아야 합니다.

이 기사에서는 C++에서 이 문제를 해결하기 위한 몇 가지 기술을 살펴보겠습니다.

문제 이해하기

상위 배열을 제공합니다. 배열 인덱스가 트리 노드의 값을 형성하고 배열의 값이 해당 특정 인덱스의 상위 노드를 제공하도록 이진 트리 형식으로 표현해야 합니다.

-1은 항상 루트 상위 노드라는 점에 유의하세요. 아래에는 배열과 이진 트리 표현이 나와 있습니다.

으아아아

이진 트리 -

이진 트리의 이등변삼각형 수

모든 이진 트리에는 세 가지 유형의 이등변삼각형이 있을 수 있습니다. -

  • 왼쪽 이등변 삼각형 이 삼각형에서 꼭지점은 왼쪽 부모 노드의 자식 노드이고 밑변(이등변삼각형의 양쪽)을 이루는 꼭지점은 왼쪽입니다. 자식 노드. 하위 노드는 직접적이거나 간접적일 수 있습니다. 위 트리에는 (2, 6, 3), (3, 7, 1)이라는 두 개의 이등변삼각형이 있습니다.

  • 오른쪽 이등변삼각형 이 삼각형에서 꼭짓점은 부모의 오른쪽 자식이고, 밑면을 구성하는 꼭짓점은 꼭짓점의 오른쪽 자식입니다. 어린이는 직접적일 수도 있고 간접적일 수도 있습니다. 위의 트리에는 이등변삼각형(4, 1, 8)이 하나만 있습니다.

  • Balanced Isosceles Triangle 이 삼각형에서 밑면을 이루는 꼭짓점은 꼭짓점 노드의 왼쪽 및 오른쪽 자식 노드입니다. 위 트리에는 (1, 3, 4), (3, 2, 7), (4, 8, 9), (2, 5, 6), (1, 2, 9)와 같은 이등변삼각형 5개가 있습니다.

위의 이진 트리에는 총 8개의 이등변삼각형이 있습니다.

깊이 우선 탐색을 사용한 순회

깊이 우선 탐색(DFS)은 트리의 모든 노드를 깊이 있게 탐색하는 방법입니다. 루트 노드에서 시작하여 각 분기로 이동한 다음 역추적합니다.

  • 먼저 DFS를 사용하여 이진 트리의 각 노드를 순회하고 각 노드가 서로 인접한 것으로 표시되도록 그래프로 변환합니다. 이렇게 하면 탐색이 더 쉬워집니다.

  • 각 노드에 대해 하위 노드가 있는지 확인합니다. 확인한 후 sort(node[x].begin(), node[x].end()) 함수를 사용하여 정렬합니다.

  • 다음으로 현재 노드가 해당 상위 노드의 왼쪽 또는 오른쪽 후속 노드인지 확인합니다. 우리는 이진 트리의 모든 노드에서 DFS 함수를 재귀적으로 사용합니다.

  • 현재 노드에 두 개의 자식(직접 또는 간접)이 있는 경우 두 자식 사이의 모서리를 계산하여 이등변삼각형이 존재할 가능성을 확인합니다. 아래 코드에 제공된 graph 함수를 통해 그들 사이의 가장자리를 찾을 것입니다.

  • 마지막으로 서로 다른 위치에 있는 가능한 모든 삼각형을 더하여 이등변삼각형의 총 개수를 계산합니다.

으아아아

출력

으아아아

결론

부모 배열이 주어졌을 때 이진 트리에서 정삼각형의 총 개수를 찾는 방법을 논의했습니다. 우리는 이진 트리를 탐색할 수 있는 깊이 우선 탐색을 사용하여 이를 달성할 수 있습니다.

위 내용은 이진 트리의 이등변삼각형 수의 상세 내용입니다. 자세한 내용은 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. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

지식을 늘려보세요! 논리적 규칙을 사용한 머신러닝 지식을 늘려보세요! 논리적 규칙을 사용한 머신러닝 Apr 01, 2023 pm 10:07 PM

정밀도-재현율 곡선에서는 동일한 점이 서로 다른 축으로 표시됩니다. 경고: 왼쪽의 첫 번째 빨간색 점(0% 재현율, 100% 정밀도)은 0개 규칙에 해당합니다. 왼쪽의 두 번째 점이 첫 번째 규칙입니다. Skope-rules는 트리 모델을 사용하여 규칙 후보를 생성합니다. 먼저 몇 가지 의사결정 트리를 구축하고 루트 노드에서 내부 노드 또는 리프 노드까지의 경로를 규칙 후보로 고려합니다. 그런 다음 이러한 후보 규칙은 정밀도 및 재현율과 같은 사전 정의된 기준에 따라 필터링됩니다. 정밀도와 재현율이 임계값을 초과하는 항목만 유지됩니다. 마지막으로, 다양성이 충분한 규칙을 선택하기 위해 유사성 필터링이 적용됩니다. 일반적으로 Skope-rule은 각 문제의 근본 원인을 학습하는 데 적용됩니다.

OpenOOD 업데이트 v1.5: 포괄적이고 정확한 배포되지 않은 감지 코드 라이브러리 및 테스트 플랫폼, 온라인 순위 및 원클릭 테스트 지원 OpenOOD 업데이트 v1.5: 포괄적이고 정확한 배포되지 않은 감지 코드 라이브러리 및 테스트 플랫폼, 온라인 순위 및 원클릭 테스트 지원 Jul 03, 2023 pm 04:41 PM

OOD(Out-of-distribution) 감지는 개방형 지능형 시스템의 안정적인 작동을 위해 매우 중요하지만 현재의 객체 지향 감지 방법은 "평가 불일치"(평가 불일치)로 인해 어려움을 겪고 있습니다. 이전 작업 OpenOODv1은 OOD 감지 평가를 통합했지만 여전히 확장성과 유용성에 한계가 있습니다. 최근 개발팀은 이전 버전과 비교하여 OpenOODv1.5를 다시 한번 제안했으며, 새로운 OOD 탐지 방법 평가는 정확성, 표준화 및 사용자 친화성을 보장하는 데 있어 크게 향상되었습니다. 이미지 용지: https://arxiv.org/abs/2306.09301OpenOODCodebase:htt

C 언어로 이진 트리의 왼쪽 보기 인쇄 C 언어로 이진 트리의 왼쪽 보기 인쇄 Sep 03, 2023 pm 01:25 PM

작업은 주어진 이진 트리의 왼쪽 노드를 인쇄하는 것입니다. 먼저 사용자는 데이터를 삽입하여 이진 트리를 생성한 다음 결과 트리의 왼쪽 보기를 인쇄합니다. 각 노드는 최대 2개의 하위 노드를 가질 수 있으므로 이 프로그램은 왼쪽 포인터가 null이 아닌 경우 노드와 연결된 왼쪽 포인터에 대해서만 반복해야 합니다. 이는 노드와 연결된 일부 데이터 또는 포인터가 있음을 의미하며 그렇지 않으면 다음과 같이 인쇄 및 표시됩니다. 출력의 왼쪽 자식. 예시입력:10324출력:102여기서 주황색 노드는 이진 트리의 왼쪽 보기를 나타냅니다. 주어진 그래프에서 데이터 1이 있는 노드는 루트 노드이므로 인쇄되고 왼쪽 자식으로 가는 대신 0을 인쇄한 다음 3으로 가서 왼쪽 자식인 2를 인쇄합니다. 재귀적 방법을 사용하여 노드 수준을 저장할 수 있습니다.

Java의 이진 트리 구조에 대한 자세한 설명 Java의 이진 트리 구조에 대한 자세한 설명 Jun 16, 2023 am 08:58 AM

이진 트리는 컴퓨터 과학의 일반적인 데이터 구조이자 Java 프로그래밍에서 일반적으로 사용되는 데이터 구조입니다. 이 기사에서는 Java의 이진 트리 구조를 자세히 소개합니다. 1. 이진 트리란 무엇입니까? 컴퓨터 과학에서 이진 트리는 각 노드에 최대 2개의 하위 노드가 있는 트리 구조입니다. 그 중 왼쪽 자식 노드는 부모 노드보다 작고, 오른쪽 자식 노드는 부모 노드보다 크다. Java 프로그래밍에서 이진 트리는 일반적으로 데이터 쿼리의 정렬, 검색 및 효율성 향상을 나타내는 데 사용됩니다. 2. Java에서 이진 트리 구현 Java에서는 이진 트리를

Java에서 런타임이 제공하는 매개변수 수를 찾는 방법은 무엇입니까? Java에서 런타임이 제공하는 매개변수 수를 찾는 방법은 무엇입니까? Sep 23, 2023 pm 01:13 PM

Java에서 런타임 시 매개변수를 전달하는 한 가지 방법은 명령줄이나 터미널을 사용하는 것입니다. 명령줄 매개변수에 대한 이러한 값을 검색할 때 런타임 시 사용자가 제공한 매개변수 수를 찾아야 할 수 있으며, 이는 길이 속성의 도움으로 얻을 수 있습니다. 이 기사에서는 샘플 프로그램을 사용하여 사용자가 제공한 여러 매개변수를 전달하고 가져오는 프로세스를 설명하는 것을 목표로 합니다. 런타임 시 사용자가 제공한 인수 수 가져오기 명령줄 인수 수를 찾기 전에 첫 번째 단계는 사용자가 런타임 시 인수를 전달할 수 있는 프로그램을 만드는 것입니다. String[] 매개변수 Java 프로그램을 작성할 때 main() 메소드를 자주 접하게 됩니다. JVM이 이 메소드를 호출하면 Java 애플리케이션이 실행되기 시작합니다. String[]args라는 인수와 함께 사용됩니다.

Linux 명령: Telnet 프로세스 수를 확인하는 방법 Linux 명령: Telnet 프로세스 수를 확인하는 방법 Mar 01, 2024 am 11:39 AM

Linux 명령은 시스템 관리자의 일상 작업에 없어서는 안 될 도구 중 하나입니다. 다양한 시스템 관리 작업을 완료하는 데 도움이 될 수 있습니다. 운영 및 유지 관리 작업에서 문제를 발견하고 적시에 조정하기 위해 시스템의 특정 프로세스 수를 확인해야 하는 경우가 있습니다. 이번 글에서는 리눅스 명령어를 이용해 텔넷 프로세스 개수를 확인하는 방법을 소개하겠습니다. 함께 배워볼까요? Linux 시스템에서는 grep 명령과 함께 ps 명령을 사용하여 텔넷 프로세스 수를 볼 수 있습니다. 먼저 터미널을 열어야 합니다.

C 언어에서는 이진 트리의 오른쪽 보기를 인쇄합니다. C 언어에서는 이진 트리의 오른쪽 보기를 인쇄합니다. Sep 16, 2023 pm 11:13 PM

작업은 주어진 이진 트리의 오른쪽 노드를 인쇄하는 것입니다. 먼저 사용자는 이진 트리를 생성하기 위해 데이터를 삽입한 다음 결과 트리의 올바른 보기를 인쇄합니다. 위 이미지는 노드 10, 42, 93, 14, 35, 96, 57 및 88을 사용하여 생성된 이진 트리를 보여 주며 트리의 오른쪽에 있는 노드가 선택되어 표시됩니다. 예를 들어 10, 93, 57, 88은 이진 트리의 가장 오른쪽 노드입니다. 예 입력:1042931435965788출력:10935788 각 노드에는 왼쪽 포인터와 오른쪽 포인터라는 두 개의 포인터가 있습니다. 이 질문에 따르면 프로그램은 올바른 노드만 통과하면 됩니다. 따라서 노드의 왼쪽 자식을 고려할 필요가 없습니다. 오른쪽 보기는 계층 구조의 마지막 노드인 모든 노드를 저장합니다. 그러므로 우리는

C++를 사용하여 N-진 트리를 탐색하는 방법의 수 찾기 C++를 사용하여 N-진 트리를 탐색하는 방법의 수 찾기 Sep 04, 2023 pm 05:01 PM

N-ary 트리가 주어지면 우리의 임무는 트리를 통과하는 총 방법 수를 찾는 것입니다. 예를 들어 위 트리의 경우 출력은 192입니다. 이 문제를 풀려면 조합론에 대한 지식이 필요합니다. 이제 이 문제에서 우리는 각 경로의 가능한 모든 조합을 확인하면 되며 이것이 답을 줄 것입니다. 솔루션을 찾는 방법 이 방법에서는 계층 순회를 수행하고 각 노드에 자식 노드가 몇 개 있는지 확인한 다음 답과 계승 곱하면 됩니다. 위 메서드 #include<bits/stdc++.h>usingnamespacestd;structNode{//s의 C++ 코드 예

See all articles