Witam :) Implementuje drzewo binarne, które ma być drzewem genealogicznym. Stworzyłem dwie struktury, jedna przechowuje dane osoby, a druga odpowiada za węzeł drzewa. Dostaję jednak masę błędów związanych z rzekomym brakiem deklaracji zmiennych "lewy, prawy" itd. oraz errory : expected primary expression before '>' token ( np. do linii : return naj_lewo(start - >lewy). Zapewne coś mieszam ze wskaźnikami, ale nie mogę się w tym już połapać. Proszę o pomoc/wskazówki.
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <stdio.h>
using namespace std;
struct osoba
{
string imie;
string nazwisko;
int rok_urodzenia;
string pokrewienstwo;
string plec;
osoba *nastepna;
osoba();
};
osoba::osoba()
{
nastepna=0;
}
struct wezel
{
osoba *pierwszy;
struct osoba *dane;
struct wezel *lewy;
struct wezel *prawy;
struct wezel *rodzic;
void dodaj_osobe();
void wypelnij_drzewo(wezel*);
void wyswietl(wezel*, int);
wezel();
};
wezel::wezel()
{
pierwszy=0;
}
///////////////////////////////////////////
struct wezel* naj_lewo(struct wezel *start) {
if((start ->lewy) ! = NULL)
return naj_lewo(start - >lewy) ;
else
return start;
}
int dodawanie(osoba* n, struct wezel *start) {
//jezeli drzewo jest puste to dodaj korzen
osoba *temp=pierwszy;
osoba *nowy = new osoba;
if (temp == NULL) {
temp - >nastepna = n;
temp - >lewy = NULL;
temp - >prawy = NULL;
temp - >rodzic = NULL;
}
else
{
if(plec=="mezczyzna")
{
nowy - >nastepna = n;
nowy - >lewy = NULL;
nowy - >prawy = NULL;
nowy - >rodzic = start;
start - >lewy = nowy;
}
else if(plec=="kobieta")
{
nowy ->nastepna = n;
nowy ->lewy = NULL;
nowy ->prawy = NULL;
nowy ->rodzic = start;
start ->prawy = nowy;
}
}
return 0;
}