알고리즘 과정의 최근 테스트에서 주어진 이진 트리의 균형을 맞추기 위해 AVL 트리를 리 밸런싱하는 데 사용되는 메소드를 사용하는 작업이있었습니다. 문제는 해당 트리가 BST가 아닌 경우 무엇입니까? 회전을 사용하는 것이 합리적입니까? 내 말은, 당신은 그것들을 사용할 수 있지만 그것을 고치기 전에 그러한 나무의 균형을 유지할 수있는 방법이없는 것 같습니다
#include<stdio.h>
#include<stdlib.h>
// An AVL tree node
struct node
{
int key;
struct node *left;
struct node *right;
int height;
};
// A utility function to get maximum o
안녕하세요, 나는 포지 션을 제공함으로써 숫자를 인쇄하는 가장 효율적인 방법을 찾아야합니다. 8 (N-> N Numbers)
INS 100 (Add 100 to the tree)
INS 200 (Add 200 to the tree)
INS 300 (Add 300 to the tree)
REM 200 (Remove the number 200 from
내일 시험에 응시할 수 있으며 내 노트에서 이해할 수없는 3 가지 질문이 있습니다. 1- #searches >> #insertions and # deletions = 0 어느 트리가 있습니까? (Avl 또는 Red-Black Tree) (답변은 Avl입니다) 2 #insertions> 0 and # searches = # deletions = 0 어느 트리
AVL 프로그램에서 회전 기능을 구현하려고했지만 오른쪽 회전 기능이 호출 될 때 계속 seg 오류가 발생합니다. 나는 Valgrind의 테스트를 수행하고 내가 할 3 오류가 있습니다 : 그것은 초기화되지 않은 값이 있다는 오류의 두 언급 ==23399== 1 errors in context 1 of 3:
==23399== Invalid read of si
내가 AVL 트리를 구현하고 주어진 트리의 균형 계수 계산합니다 그 함수 쓴 해요 : int avlTree::balanceFactor(avlNode *tree){
return height(tree->left) - height(tree->right);
}
을하지만 실제로 올바른 균형 인자의 날을 반환하면서 것 같아 나무, 그것은 날씨를 결정하게
#include "tree.h"
#include <iostream>
#include <fstream>
using namespace std;
int counter;
tree::tree()
{
root = NULL;
}
int tree::height(node *temp)
{
int h = 0;
if (temp