자바에서 삽입 및 선주문 방법을 사용하여 간단한 이진 검색 트리를 구현할 예정입니다. stackoverflows 때까지 무제한 preorder 실행으로 실행됩니다. 여기 public class Node {
private Node right, left;
private int data;
public Node(Node right, Node left, in
현재 바이너리 검색 트리에서 작업하고 있지만 순회 방법에 문제가 있습니다. 올바른 데이터를 인쇄하지 않습니다. 내가 기억에서 잃어 버리고있는 것처럼 보입니다. 네 번째 요소를 추가 할 때까지 모든 것이 잘 작동합니다. 여기 좀 봐 주시겠습니까? 헤더 파일 : #ifndef TREENODE_H
#define TREENODE_H
#includ
나는이 진술을 반증하려고 노력하고있다. v를 삭제하고 w를 삭제하고 v를 삭제할 때마다 이진 검색 트리에서 v와 w를 사용한다. 나는을 찾고있다. 예를 들어, 누군가가 저를 도울 수 있기를 바랍니다. 은 BST의 속성은 모든 노드와 자식 사이의 순서 관계가 있다는 것입니다 사전
재귀를 이해하고 싶습니다. 나는 수학과 어리석은 예제를 이해하지만 나는 그것의 본질을 알지 못한다. 첫째는 BST에 노드를 삽입 한 다음 새 노드가되었다 그래서 때마다 회전 : TREE-ROOT-INSERT(x, z)
if x = NIL
return z
if z.key < x.key
x.left = TREE-ROOT-INSERT(x.
O (logn) 시간의 이진 검색 트리에서 최소/최대 값을 찾을 수 있습니다. 그러나 C++의 map은 일정 시간 동안 최소/최대 값을줍니다. 지도에서 최소 요소는 map::begin이고 최대 값은 map::rbegin입니다. 이 두 작업은 모두 일정한 시간이 걸립니다. 누구든지 최소 / 최대 O (1)을 찾는 방법을 제안 할 수 있습니까?
그 중 n 개의 노드에 Point (x, y) 유형의 객체가 포함 된 BST를 구현했습니다. 트리의 순서는 X의 값에 따라 결정됩니다. 는 I 입력으로 X의 범위지고 (X의 왼쪽, 오른쪽 x)는 함수 를 구현해야하며 출력 (EDIT)이다 내지 Y의 좌표의 합 (포함). 모든 노드를 "워킹"하는 것이 그렇게 어렵지는 않습니다. 문제는 O (logn) 복잡성에
이진 검색 트리에 대한 반복기를 구현하려고합니다. 반복기에서 STL을 사용하지 않도록 요청 받았습니다. 연산자를 재정의해야합니다 (++, operator* 및 !=). operator*에 오류가 발생합니다. "no *operator이이 피연산자와 일치합니다. 피연산자 유형은 *iterator<std::string>"입니다. 템플릿 라이브러리를 사용하고 있으
내가 이진 검색 트리를 구현하고있어 을로받은하지만 '어떤 이유로 내 노드 추가 할 수 없습니다 M : 입력했다 : a.value = 5;
add_bst_node(&t,a);
mystructures : 를 typedef struct BST_node{
entity value;
struct BST_node* left;
struct BST_node* r
이진 트리 데이터 구조를 사용하여 사전을 디자인하고있었습니다. 그러나 이진 트리 데이터 구조에서 비슷한 의미의 단어를 찾아야한다는 요구 사항이 있습니다. 이진 트리 데이터 구조가 그것을 달성하기 위해 수정할 수 있는지 또는 다른 데이터 구조가이 요구 사항을 지원하는지 궁금합니다.