Дерево - исправить ошибки в коде - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д