#include<bits/stdc++.h>
using namespace std;
struct Node
{
int data;
struct Node* left;
struct Node* right;
};
Node *root=NULL;
Node *newNode(int data)
{
Node* temp=new Node();
temp->data=data;
temp->left=temp->right=NULL;
return temp;
}
void preorder(Node* root)
{
if(root)
{
cout<<root->data<<endl;
preorder(root->left);
preorder(root->right);
}
}
Node *Search(Node* root,int parent)
{
if(root->data==parent)
{
return root;
}
if(root==NULL)
{
return NULL;
}
Node* temp=Search(root->left,parent);
if(temp)
{
return temp;
}
Search(root->right,parent);
}
int main()
{
int n,parent,child,i;
char c;
cin>>n;
root=newNode(1);
Node *s;
for(i=0;i<n-1;i++)
{
cout<<"ek for"<<endl;
cin>>parent;
cin>>child;
cin>>c;
s=Search(root,parent);
if(c=='L')
{
s->left=newNode(child);
}
else
{
s->right=newNode(child);
}
}
preorder(root);
}
Я пытаюсь вставить в дерево в соответствии с символом, если задан символ L, тогда узел будет вставлен слева от этого узла. Аналогично для символа R. Но цикл не работает должным образом. рано заканчивать. что не так с моим кодом ?? например, если ввод 1 2 R и 1 3 л, то 1 / \ 3 2