Java를 사용하여 geeksforgeeks.com http://www.geeksforgeeks.org/inorder-predecessor-successor-given-key-bst/에서 다음 질문을 풀려고합니다. 트리에없는 값의 경우 키의 올바른 후임을 얻을 수 없지만 트리에 이미있는 키를 검색하는 동안 올바른 후행을 얻고 있습니다. 누군가 내가 잘못 가
나는 온라인 튜토리얼 (https://www.youtube.com/watch?v=z0FDBGbf42Q : PaulProgramming)을 따르는 이진 검색 트리를 만들었습니다. 내 코드는 실제로 튜토리얼의 코드와 동일하지만 메인을 실행할 때 세분화 오류가 발생합니다. 나는 이유를 알 수 없다. 아무도 내 오류가 어디에 있는지 크게 지적 해 줄 수 있다고 지
저는 최근에 C++에서 Java로 옮겼습니다. 이제는 C++에서 포인터를 사용해야하는 데이터 구조로 놀고 있습니다. 지금 Java에서 BST를 만들고 있는데, inserting을 Tree로 재귀를 사용하고 예상대로 작동하지 않습니다. 이 코드는 Node과 val = 5 만 저장합니다. 어떤 조언을 해줄 수 있습니까? public class Main
{
나는 list_of_tuples = [(number, name, id, parent_id),
(number, name, id, parent_id),
]
내가 좋아하는 정렬 된 구조로 정렬 노력하고 같은 튜플의 목록을 가지고 로 : tree = defaultdict(lambda: [None,()])
ancestors = set([ite
선주문은 깊이 우선 알고리즘을 통과합니까? 나는 아래 검색에서 그것을 사용하고있다. 나는 아래 코드를 포함시켰다. public bool DFS1(int value, BSTNode root)
{ // Pre-order search
if (root == null)
return false;
if (root.data == valu
리프 노드에 대한 포인터를 0으로 설정하지 않는 BST에 대한 재귀 적 제거 기능이 있습니다. bool removeNode(Node* tree, int key)
{
bool removed = false;
if (tree)
{
if (key < tree->key)
{
removeNode(tree
나이트 고비에 익숙하지 않은 경우 여기에 약간의 컨텍스트가 있습니다. 당신의 작업은 기사가 길을 따라에 중지 모든 사각형을 출력하여 다른 하나의 광장에서 얻을 수있는 가장 간단한 방법을 보여줍니다 함수 knight_moves를 구축하는 것입니다. 나는이 연습에 대한 완벽한 해결책을 어디서 찾을 수 있는지 알고 있지만 대부분 혼자 힘으로 노력하고 있습니다.
BST에 대한 순회 탐색 개념을 이해하고 있지만 재귀가 어떻게 작동하는지 혼란 스럽습니다. print 문과 매개 변수로서의 root.right를 사용한 재귀 호출이 어떻게 실행될 지 혼란스러워합니다. inOder (root.left)는 BST에서 가장 낮은 값으로 검색되도록 계속 호출되지만 null에 도달하면 if 문에 도달 할 수 없으므로 올바른 노드로