ikili arama ağaçları işlemler 2


#include<iostream>
using namespace std;
typedef struct node
{
 int data;
 node *left;
 node *right;
};
typedef struct  node *BTREE;

BTREE new_node(int veri)
{
 BTREE p=new node();
 p->data=veri;
 p->left=NULL;
 p->right=NULL;
 return p;
 
}
BTREE ekle(BTREE root,int veri)
{
 if(root!=NULL)
 {
  if(veri>=root->data)
   {
    root->right=ekle(root->right,veri);
   }
   else
   {
    root->left=ekle(root->left,veri);
   }
  
  
 }
 else
 {
  root=new_node(veri);
  
  
  
  
 }
 return root;
 
};

void preorder(BTREE root)
{
 if(root!=NULL)
  {
   cout<<root->data<<endl;
   preorder(root->left);
   preorder(root->right);
   
  }

};
void inorder(BTREE root)
{
 if(root!=NULL)
  {
   
   preorder(root->left);
   cout<<root->data<<endl;
   preorder(root->right);
   
  }

};
void postorder(BTREE root)
{
 if(root!=NULL)
  {
   
   preorder(root->left);
   preorder(root->right);
   cout<<root->data<<endl;
  }

};
int esayisi(BTREE root)
{
 if(root==NULL)
  return 0;
 else
 {
  return esayisi(root->left)+esayisi(root->right)+1;
 }
 
}
BTREE  sil(BTREE root,int veri)
{ BTREE p,q;
 
 if(root==NULL)
  return NULL;
 else if(root->data>veri)
 {
  root->left=sil(root->left,veri); 
 }
 else if(root->data<veri)
  {
   root->right=sil(root->right,veri);
  }
 else
 {
  if(root->data==veri)
 {
  if(root->left==root->right)
   {
   delete root;
   return NULL;
    
   }
  else
   { 
    if(root->left=NULL)
     { cout<<"sefsfs";
      p=root->right;
      delete root;
      return p;
      
     }
    else if(root->right=NULL)
     {
      p=root->left;
      delete root;
      return p;
      
     }
    else
     {
      p=q=root->right;
      while(p->left!=NULL)
       p=p->left;
      p->left=root->left;
      delete root;
      return q;
       
      
      
      
     }
    
   }

 }
  
 }
 return root;
}
main()
{
BTREE root=NULL;
root=ekle(root,34);
ekle(root,24);
ekle(root,54);
ekle(root,14);
ekle(root,25);
ekle(root,56);
//postorder(root);
//inorder(root);
//preorder(root);
//cout<<"elemansayisi:"<<esayisi(root)<<endl;
 root=sil(root,14);
 inorder(root);
 
}
sonraki
« Prev Post
Önceki
Next Post »

2 yorum

Için tıklayınız yorum
10 Ocak 2017 01:15 ×

yazının rengini siyah yapmanı tavsiye ederim ne olduğu belli değil sayfa yüklenmedi gibi duruyor iyi çalışmalr

Balas
avatar
admin
18 Nisan 2017 21:47 ×

Önerin için Teşekkürler.

Balas
avatar
admin
Thanks for your comment