Реализация дерева в C ++: невозможно преобразовать Node в int * Задать вопрос - PullRequest
0 голосов
/ 15 февраля 2020

Я сейчас работаю над домашней работой. Ниже приведена программа для построения бинарного дерева, которую я написал. Я получаю сообщение об ошибке "не могу преобразовать 'узел ' в 'int *' в назначении". Не могли бы вы помочь мне здесь? **

#include<iostream>
#include<conio.h>

struct node
{
    char data;
    int *left,*right;
};

int main()
{
    node *T; //ROOT of tree
    node *p,*q; //address of first node in T
    T=new node;
    T->left=NULL;
    T->right=NULL;
    T->data='A';


    p=new node;
    p->left=NULL;
    p->right=NULL;
    p->data='B';
    T->left=&p;

    p=new node;
    p->left=NULL;
    p->right=NULL;
    p->data='C';
    T->right=&p;

    q=new node;
    q->left=NULL;
    q->right=NULL;
    q->data='D';
    p->left=&q;

    return 0;
}```

Ответы [ 2 ]

3 голосов
/ 15 февраля 2020

Измените определение структуры на

struct node
{
    char data;
    node *left,*right;  // <- node * here
};

Узел дерева имеет рекурсивное определение.

1 голос
/ 15 февраля 2020

Измените свою структуру в соответствии с предложением @TarekD, проблема в том, что вы пытаетесь преобразовать узел * в int *

T->left=&p;

T->right=&p;

p->left=&q;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...