Дерево - исправить ошибки в коде - 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);
- }
Объяснение кода листинга программы
- Функция
Tree_search
принимает два аргумента: указатель на узел дереваroot
иint k
. - Если
root
равенNULL
илиk
равноroot->data
, то функция возвращаетroot
. - Если
k
меньшеroot->data
, то функция рекурсивно вызывает саму себя с аргументамиroot->left
иk
, и возвращает результат. - Если
k
больше или равноroot->data
, то функция рекурсивно вызывает саму себя с аргументамиroot->right
иk
, и возвращает результат. - В обоих случаях, если функция вызывает саму себя, она ищет значение
k
в левом или правом поддереве от корняroot
. - Если значение
k
найдено в левом или правом поддереве, то возвращается узел, содержащий это значение. - Если значение
k
не найдено в левом и правом поддереве, то возвращаетсяNULL
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д