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
Bu ödevde kullanıcının girdiği seviye (n) değerine bağlı olarak 1 .. pow(2,n+1)-1 arası sayılar ikili ağaca dengeli yerleştirildiğinde oluşan ağaç aşağıdaki videodaki gibi text dosyaya yazılacaktır. Videoda n değerleri 1..5 arası girilmiştir. Göndereceğiniz program herhangi başka bir n değeri için de çalışmalıdır. kod söyle başlıyo
#include
using namespace std;
#include
void drawTree(int n) {…..} \\abi burada program çalıştığında n için verilen her değerdetext
int main () \\dosyasına ağaç yapıına göre dizecek …
{
int n;
cout<>n;
drawTree(n);
::getchar();
…………
bu bana lazım abi yaparsaan sevinirim …. şimdiden teşekkürler
tmm abi gerek yok buldum…teşekkür…
Etiketlerdeki C# tagını kaldırır mısınız arama motorunu yanıltırıyorsunuz