Создание бинарного дерева и вывод на экран - 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 и будет использоваться для создания нового узла в бинарном дереве.