이진 트리가 반드시 이진 검색 트리 일 필요는 없습니다. 구조는- struct node { int data; struct node *left; struct node *right; }; 친구와 함께 해결할 수있는 최대 솔루션은 이런 종류의 것입니다. 이 바이너리 트리를 고려하십시오 . 순차 통과 수율-8, 4, 9, 2, 5, 1, 6, 3, 7 그리고 주문 후 …
출력이 다음과 같이되도록 Java로 이진 트리를 인쇄하는 방법은 무엇입니까? 4 / \ 2 5 내 노드 : public class Node<A extends Comparable> { Node<A> left, right; A data; public Node(A data){ this.data = data; } }
이진 검색 트리의 정의를 찾으려고 노력하고 있으며 어디에서나 다른 정의를 계속 찾습니다. 어떤 하위 트리에서는 왼쪽 하위 키가 루트보다 작거나 같다고 말합니다. 어떤 하위 트리에서는 올바른 하위 키가 루트보다 크거나 같다고 말합니다. 저의 오래된 대학 데이터 구조 책은 "모든 요소에는 키가 있고 두 요소에는 동일한 키가 없습니다"라고 말합니다. bst에 대한 …
누군가 스택이나 재귀를 사용하지 않고 다음 Morris inorder tree traversal 알고리즘을 이해하도록 도와 줄 수 있습니까? 나는 그것이 어떻게 작동하는지 이해하려고 노력했지만 그저 나를 탈출했습니다. 1. Initialize current as root 2. While current is not NULL If current does not have left child a. Print current’s data b. Go to …
그 학창 시절부터 오래되었습니다. 병원에서 IT 전문가로 취직했습니다. 지금 실제 프로그래밍을하기 위해 이동하려고합니다. 나는 지금 이진 트리에 대해 작업하고 있는데, 트리가 높이 균형을 이루는 지 결정하는 가장 좋은 방법이 무엇인지 궁금합니다. 나는 이것과 함께 무언가를 생각하고 있었다. public boolean isBalanced(Node root){ if(root==null){ return true; //tree is empty } else{ int …
정적 / 전역 변수를 사용하지 않고 이진 검색 트리에서 k 번째로 작은 요소를 찾아야합니다. 효율적으로 달성하는 방법은 무엇입니까? 내가 생각하는 해결책은 O (n)에서 작업을 수행하는 것인데, 전체 트리를 순회 할 계획이므로 최악의 경우입니다. 그러나 나는 여기서 BST 속성을 사용하지 않는다고 느낍니다. 내 가정적인 솔루션이 정확합니까 아니면 더 나은 솔루션이 있습니까?
나는 내 인생에서 BST를 많이 사용했지만 Inorder traversal 이외의 것을 사용하는 것을 고려한 적이 없다는 것을 최근 깨달았습니다. 이것을 깨달은 후, 나는 나의 오래된 데이터 구조 교과서를 뽑아 내고 선주문과 주문 후 순회의 유용성 뒤에있는 추론을 찾았습니다. 그들은 많이 말하지 않았습니다. 사전 주문 / 후 주문을 실제로 사용하는 경우의 몇 …
이진 검색 트리 유형의 데이터 구조의 경우 Big O 표기법은 일반적으로 O (logn)로 표시됩니다. 로그에 소문자 'l'이있는 경우 자연 로그로 설명되는 로그 밑 e (n)를 의미합니까? 간단한 질문에 대해 죄송하지만 다른 묵시적 로그를 구분하는 데 항상 어려움이있었습니다.
type BSTree a = BinaryTree a data BinaryTree a = Null | Node (BinaryTree a) a (BinaryTree a) deriving Show flattenTree :: BinaryTree a -> [a] flattenTree tree = case tree of Null -> [] Node left val right -> (flattenTree left) ++ [val] ++ (flattenTree right) isBSTree :: (Ord …