#include <cstdlib>
#include <iostream>
using namespace std;
bool jak=0;
int znajdzi;
struct node {
int key;
node *left, *right, *top;
};
void dodaj_wezel(int z, node *n){
node *x=new node;
x->left=x->right=NULL;
x->key=z;
while(1){
if(z<n->key){
if(n->left==NULL){
n->left=x;
break;
}
else
n=n->left;
}
else{
if(n->right==NULL){
n->right=x;
break;
}
else
n=n->right;
}
}
};
bool maxy(node *n)
{
bool j=0;
if(n!=NULL||(n->key)>znajdzi){
j=maxy(n->right);
if(j==1&&jak==0){
cout<<n->key<<endl;
jak=1;
}
}
else return 1;
}
int main(){
node *n=new node;
n->left=n->right=n->top=NULL;
n->key=0;
int p,m;
cin>>p>>znajdzi;
for(int x=0;x<p;x++){
cin>>m;
dodaj_wezel(m,n);
}
maxy(n);
}
oto mój kod wczytuje on liczby i zapisuje je w formie drzewa i z tym nie ma najmniejszego problemu problem pojawia się gdy chce pobrać wartość jakiegoś węzła tzn zapisać a nie tylko wyświetlić
bool maxy(node *n)
{
bool j=0;
if(n!=NULL||(n->key)>znajdzi){
j=maxy(n->right);
if(j==1&&jak==0){
cout<<n->key<<endl;
jak=1;
}
}
else return 1;
}
czemu gdy wyświetlam n->key za pomaca cout wszystko jest ok a gdy chce to zapisać np. int d=n->key wyskakuje błąd wiem że powinienem to znaleźć w google poszukać czegoś o dynamicznym alokowaniu pamięci i o strukturach ale naprawdę uwierzcie mi próbowałem
i jeszcze jedno w strukturze jest to *top niby nigdzie w programie nie używane a jak wykasuje to jest błąd