![]() |
| C ile Ağaç - ama bizim dediğimiz bu değil :) |
/* **********Algoritma Uzmanı********* */
/* ******www.Algoritma Uzmanı.com***** */
#include <stdio.h>
#include <stdlib.h>
// Ağaç veri yapımızdaki düğümler için struct oluşturduk
struct node
{
int data;
struct node* left;
struct node* right;
};
// Her yeni node oluştururken aynı kodu tekrarlamamak için
// malloc komutuyla alan ayıran fonksiyonu ekledik
struct node* newNode(int data)
{
struct node* node = (struct node*)
malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
// Ağaç elemanlarını Postorder sıralayan fonksiyon
void printPostorder(struct node* node)
{
//Eğer düğümde veri yoksa Null Döndürüyoruz
if (node == NULL)
return;
// sol alt ağacı tarıyoruz
printPostorder(node->left);
// sağ alt ağacı tarıyoruz
printPostorder(node->right);
// node->data değerini ekrana basıyoruz
printf("%d ", node->data);
}
//Ağaç elemanlarını inOrder olarak sıralayan fonksiyon
void printInorder(struct node* node)
{
if (node == NULL)
return;
/* sol çocukları recursive olarak çağırıyoruz */
printInorder(node->left);
/* Elde edilen düğümün değerini ekrana yazdırıyoruz */
printf("%d ", node->data);
/* sağ çocukları recursive olarak çağırıyoruz */
printInorder(node->right);
}
/* Ağaç Elemanlarını preOrder olarak ekrana bastıran Fonksiyon*/
void printPreorder(struct node* node)
{
if (node == NULL)
return;
/* ilk olarak kök enrana yazdırılır */
printf("%d ", node->data);
/* sol alt ağacı tarıyoruz */
printPreorder(node->left);
/* sağ alt ağacı tarıyoruz */
printPreorder(node->right);
}
void algoritmaUzmani();
/* main fonksiyonumuz */
int main()
{
int secim;
struct node *root = newNode(7);
root->left = newNode(3);
root->right = newNode(4);
root->left->left = newNode(2);
root->left->right = newNode(1);
printf("\nPreorder Dolasma Sonucu \n");
printPreorder(root);
printf("\nInorder Dolasma Sonucu \n");
printInorder(root);
printf("\nPostorder Dolasma Sonucu \n");
printPostorder(root);
printf("\n Konuyla ilgili yazimiza ulasmak icin lutfen klavyenizden 7 tusuna basın");
scanf("%d", &secim);
if(secim==7)
algoritmaUzmani();
getchar();
return 0;
}
//sadece ilgili konuya gitmek icin. diger kodlar ile ilgisi yok
void algoritmaUzmani()
{
system("C:\\Progra~2\\Google\\Chrome\\Application\\chrome.exe http://www.algoritmauzmani.com/2016/10/binary-tree-traverse-ikili-agaci-dolasmak.html");
printf("\n Eger asagida sistem yolu hatasi aliyorsaniz bunu onemsemeyin");
if(system)
{
system("C:\\Progra~1\\Google\\Chrome\\Application\\chrome.exe http://www.algoritmauzmani.com/2016/10/binary-tree-traverse-ikili-agaci-dolasmak.html");
if(system)
system("C:\\Progra~2\\Mozill~1\\firefox.exe http://www.algoritmauzmani.com/2016/10/binary-tree-traverse-ikili-agaci-dolasmak.html");
if(system)
system("C:\\Progra~1\\Mozill~1\\firefox.exe http://www.algoritmauzmani.com/2016/10/binary-tree-traverse-ikili-agaci-dolasmak.html");
}
}
Etiketler: inOrder sıralama yapan fonksiyon, postOrder sıralama yapan fonksiyon, preOrder sıralama yapan fonksiyon