Дерево - исправить ошибки в коде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравсвуйте пытаюсь разобраться в деревьях............пока только создаю. выпадают ошибки.как их исправить?
#include "stdafx.h"
#include "iostream"
#include<conio.h>
 
using namespace std;
 
struct Tree
{
    int data;
    Tree* left;
    Tree* right;
}

void Add(Tree*root, int i);
{
    Tree*new_el;
    new_el=new Tree;
    new_el->data=i;
    new_el->left=NULL;
    new_el->right=NULL;
 
    if(i<root->data)
    {if(root->left==NULL)
            root->left=new_el;
        else 
        {
            Add(root->left,i);
            delete new_el;
        }
    }
    if(i>root->data)
    {if(root->right==NULL)
            root->right=new_el;
        else 
        {
            Add(root->right,i);
            delete new_el;
        }
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
 
    Tree*root;
    root=new Tree;
    root->data=NULL;
    root->left=NULL;
    root->right=NULL;
    for(int i=-100;i<=100;i++)
        Add(root,i);
    return 0;
}
Вот ошибки Error 1 error C2628: 'Tree' followed by 'void' is illegal (did you forget a ';'?) Error 2 error C2447: '{' : missing function header (old-style formal list?)

Решение задачи: «Дерево - исправить ошибки в коде»

textual
Листинг программы
Tree * Tree_search(Tree*root, int k)
{   if (root == NULL || k == root->data)
      return root;
   if (k < root->data)
      return Tree_search(root->left, k);
   else
      return Tree_search(root->right, k);
}

Объяснение кода листинга программы

  1. Функция Tree_search принимает два аргумента: указатель на узел дерева root и int k.
  2. Если root равен NULL или k равно root->data, то функция возвращает root.
  3. Если k меньше root->data, то функция рекурсивно вызывает саму себя с аргументами root->left и k, и возвращает результат.
  4. Если k больше или равно root->data, то функция рекурсивно вызывает саму себя с аргументами root->right и k, и возвращает результат.
  5. В обоих случаях, если функция вызывает саму себя, она ищет значение k в левом или правом поддереве от корня root.
  6. Если значение k найдено в левом или правом поддереве, то возвращается узел, содержащий это значение.
  7. Если значение k не найдено в левом и правом поддереве, то возвращается NULL.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5