Создание бинарного дерева и вывод на экран - C (СИ)
Формулировка задачи:
Пока не добавил ввод с клавиатуры, тк застрял на ошибках
В чем проблема? И как испрвить?
cpp.c:13:17: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token void show(Node *&Tree) //Функция обхода ^ cpp.c:24:16: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token void del(Node *&Tree){ ^ cpp.c:35:27: error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token void add_node(int x,Node *&MyTree) //Фукция добавления звена в дерево ^ cpp.c: In function ‘main’: cpp.c:70:16: error: expected ‘;’ before ‘)’ token for (i>0;--i) add_node(i,Tree); ^
#include<stdio.h> #include<stdlib.h> struct node; struct node { int x; struct Node *l; struct Node *r; }; typedef struct node Node; void show(Node *&Tree) //Функция обхода { if (Tree!=NULL) { show(Tree->l); printf("\n%d\n\n", Tree->x); show(Tree->r); } } /*Добавили очистку памяти*/ void del(Node *&Tree){ if (Tree!=NULL) { del(Tree->l); del(Tree->r); delete Tree; Tree = NULL; } } void add_node(int x,Node *&MyTree) //Фукция добавления звена в дерево { if (NULL==MyTree) { MyTree=new Node; MyTree->x=x; MyTree->l=MyTree->r=NULL; } if (x<MyTree->x) { if (MyTree->l!=NULL) add_node(x,MyTree->l); else { MyTree->l=new Node; MyTree->l->l=MyTree->l->r=NULL; MyTree->l->x=x; } } if (x>MyTree->x) { if (MyTree->r!=NULL) add_node(x,MyTree->r); else { MyTree->r=new Node; MyTree->r->l=MyTree->r->r=NULL; MyTree->r->x=x; } } } int main() {int i=5; Node *Tree=NULL; //Создаю указатель, тип которого = звено дерева и инициализирую его пустотой for (i>0;i--) add_node(i,Tree); show(Tree); printf("\n"); del(Tree); } }
Решение задачи: «Создание бинарного дерева и вывод на экран»
textual
Листинг программы
malloc(sizeof(Node);
Объяснение кода листинга программы
- В коде используется операция malloc для выделения памяти под новый узел.
- В качестве размера для выделяемой памяти используется значение sizeof(Node).
- Выделенная память будет использоваться для создания нового узла.
- Название переменной
Node
указывает на то, что это структура данных, представляющая узел в бинарном дереве. - Значение переменной
sizeof(Node)
представляет собой размер памяти, необходимый для хранения структуры данныхNode
. - В данном случае, переменная
Node
является результатом операции malloc и будет использоваться для создания нового узла в бинарном дереве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д