#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)
{
inorder(root->left);
cout<<root->data<<endl;
inorder(root->right);
}
};
void postorder(BTREE root)
{
if(root!=NULL)
{
postorder(root->left);
postorder(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)
{
if (root == NULL)
return NULL;
if (veri< root->data)
root->left = sil(root->left, veri);
else if (veri > root->data)
root->right = sil(root->right,veri);
else
{
if (root->left == NULL)
{
BTREE temp = root->right;
delete root;
return temp;
}
else if (root->right == NULL)
{
BTREE temp= root->left;
delete root;
return temp;
}
else{
BTREE temp = root->right;
BTREE temp1= root->right;
while(temp->left!=NULL)
temp=temp->left;
temp->left=root->left;
delete root;
return temp1;
}
}
return root;
}
main()
{
BTREE root=NULL;
root=ekle(root,34);
ekle(root,24);
ekle(root,54);
ekle(root,14);
ekle(root,25);
ekle(root,53);
ekle(root,56);
//postorder(root);
//inorder(root);
//preorder(root);
//cout<<"elemansayisi:"<<esayisi(root)<<endl;
root=sil(root,34);
inorder(root);
}
sonraki
« Prev Post
« Prev Post
Önceki
Next Post »
Next Post »
Kaydol:
Kayıt Yorumları (Atom)
Show Conversion Code Hide Conversion Code Show Emoticon Hide Emoticon