Создание бинарного дерева и вывод на экран - 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);

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

  1. В коде используется операция malloc для выделения памяти под новый узел.
  2. В качестве размера для выделяемой памяти используется значение sizeof(Node).
  3. Выделенная память будет использоваться для создания нового узла.
  4. Название переменной Node указывает на то, что это структура данных, представляющая узел в бинарном дереве.
  5. Значение переменной sizeof(Node) представляет собой размер памяти, необходимый для хранения структуры данных Node.
  6. В данном случае, переменная Node является результатом операции malloc и будет использоваться для создания нового узла в бинарном дереве.

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


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

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

12   голосов , оценка 4.083 из 5
Похожие ответы