![]() |
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