#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