السلام عليكم
كتبت برنامج بسي ++
بالاشجار tree
وطلع اوكيه ما فيه اخطأ او اي شي
بس ما يتطبق بالشاشه السوداء يقولي (الويندوز واجهه مشكله وخطأ) ومو عارفه ايش المشكله ..
وهذا البرنامج:
#include<iostream.h>
struct B_S_Tree_node
{
int data;
B_S_Tree_node *left;
B_S_Tree_node *right;
};
B_S_Tree_node *t;
//--------------------------------
void create ()
{
t=NULL;
}
//------------------------------
void insert(int element ,B_S_Tree_node *t)
{
if(t!=NULL)
{
if(t->data==element)
cout<<"The element is not inserted,There is befor ano Ther";
else
{ if (t->data<element)
insert(element,t->right);
else
insert(element,t->left);
}
}
else
{t=new B_S_Tree_node;
t->data=element;
t->left=NULL;
t->right=NULL;
}
}
//-----------------------------
int find_min(B_S_Tree_node *t)
{
if(t==NULL)
cout<<"Tree is empty";
else
while(t->left !=NULL)
t=t->left;
return t->data;
}
//--------------------------------
B_S_Tree_node *find_element(int data,B_S_Tree_node *t)
{ if(t!=NULL)
{ if (t->data==data)
return t;
else
{if(t->data<data)
return find_element(data,t->right);
else
return find_element(data,t->left);
}
}
return NULL;
}
//---------------------------------------
void remove (int data,B_S_Tree_node *t)
{
if(t==NULL)
cout<<"the tree is empty";
else if(data<t->data)
remove(data,t->left);
else if(data>t->data)
remove(data,t->right);
else
{
if((t->left!=NULL)&&(t->right!=NULL))
{
t->data=find_min(t->right);
remove(data,t->right);
}
else
{
B_S_Tree_node *temp=t;
t=(t->left)?t->left:t->right;
delete temp;
}
}
}
//-----------------------------------
void print_postorder(B_S_Tree_node*t)
{if(t!=NULL)
{cout<<"(";
print_postorder(t->left);
print_postorder(t->right);
cout<<t->data;
cout<<")";
}
}
void main()
{int n,m;
//B_S_Tree_node *y,*r;
create();
for(int i=1;i<=n;i++)
{cin>>n;
cout<<"enter element";
cin>>m;
insert(m,t);
}
cout<<"\n minimumm element";
find_min(t);
cout<<"enter remove";
remove(m,t);
cout<<"the tree is";
print_postorder(t);
}بلييييزززززز ساعدوني امتحاني عليه بكرا .. وللحين مو عارفه ايش المشكله :wacko:
لا تبخلون علي بمساعدتكم
جوري
