Veriyapılarının en önemli konularından biriside Ağaç (Tree) veriyapısıdır.Aşağıda ki Ağaç yapısını inceleyelim.
Bir ağaçtaki sıralama şekilleri:
İnorder: Left tree’nin en sol ucundan başlayarak sağa tarama yapılır.
Preorder:Önce ana node sonra yan node’lar okunur.
Postorder: Sondan başa doğru sol öncelikli olarak tarama yapılır.
Şimdi bunların iplementation kodunu görelim Console ekrandan Sonra…
#include<iostream>
#include<time.h>
using namespace std;
//——————————————————————————
class Node{
public:
Node(){
this->left=0;
this->rigt=0;
this->key=0;
}
Node *left;
Node *rigt;
int key;
};
//——————————————————————————
class Agac{
public:
Agac();
void ekle(int,Node*&);
void Pre_order(Node *);
void In_order(Node *);
void Post_order(Node *);
void Buyukten_kucuge(Node *);
// private:
Node *root;
int count;
};
//——————————————————————————
Agac::Agac()
{
root=0;
count=0;
}
//——————————————————————————
void Agac::ekle(int _key,Node *&root)
{
Node *pNew=new Node;
pNew->key=_key;
pNew->left=0;
pNew->rigt=0;
if(root==0)
root=pNew;
else{
if(_key>root->key)
ekle(_key,root->rigt);
else
ekle(_key,root->left);
}
count++;
}
//——————————————————————————
void Agac::Buyukten_kucuge(Node *root)
{
if(root!=NULL){
Buyukten_kucuge(root->rigt);
cout<<root->key<<” “;
Buyukten_kucuge(root->left);
}
}
//——————————————————————————
void Agac::Pre_order(Node *root)
{
if(root!=NULL){
cout<<root->key<<” “;
Pre_order(root->left);
Pre_order(root->rigt);
}
}
//——————————————————————————
void Agac::In_order(Node *root)
{
if(root!=NULL){
In_order(root->left);
cout<<root->key<<” “;
In_order(root->rigt);
}
}
//——————————————————————————
void Agac::Post_order(Node *root)
{
Node *tmp=root;
if(root!=NULL){
Post_order(root->left);
Post_order(root->rigt);
cout<<root->key<<” “;
}
}
//——————————————————————————
main()
{
srand(time(NULL));
Agac A;
for(int i=0;i<10;i++)
A.ekle(1+rand()%60,A.root);
A.Buyukten_kucuge(A.root); cout<<endl;
A.In_order(A.root);
system(“pause”);
}
MEHMET SALİH DEVECİ
BİLGİSAYAR MÜHENDİSİ YAZILIM UZMANI
1,411 views last month, 3 views today