Kod:
#include<stdlib.h>
#include<stdio.h>
//binary tree
struct bin_tree {
int data;
struct bin_tree * right;
struct bin_tree * left;
};
typedef struct bin_tree node;
**** insert(node ** tree, int val){ //////////////////İNSERT//////////////////////----------------------------------
node *temp = NULL;
if(!(*tree)){
temp = (node *)malloc(sizeof(node));
temp->left = temp->right = NULL;
temp->data = val;
*tree = temp;
return;
}
if(val < (*tree)->data){
insert(&(*tree)->left, val);
}
else if(val > (*tree)->data){
insert(&(*tree)->right, val);
}
}
**** print_preorder(node * tree){ ////////////////////PRE ORDER////////////
if (tree){
printf("%d\n",tree->data);
print_preorder(tree->left);
print_preorder(tree->right);
}
}
**** print_inorder(node * tree){ /////////////////////IN ORDER//////////////
if (tree){
print_inorder(tree->left);
printf("%d\n",tree->data);
print_inorder(tree->right);
}
}
**** print_postorder(node * tree){ ///////////////////POST ORDER/////////////
if (tree){
print_postorder(tree->left);
print_postorder(tree->right);
printf("%d\n",tree->data);
}
}
**** deltree(node * tree){ ////////////////////////////DELETE TREE//////////
if (tree){
deltree(tree->left);
deltree(tree->right);
free(tree);
}
}
int main(){ /////////////////////////////////////////////MAİN////////////////////////////////_________________________________________________________________________________
int num;
int c;
node *root;
node *tmp;
//int i;
root = NULL;
/* Inserting nodes into tree */
a:
printf("Type a number to put in binary tree (type -1 to end) : ");
scanf("%d",&num); //numaraları yaz
if(num!=-1){
insert(&root, num);
goto a;
}
// insert(&root, 9);
// insert(&root, 4);
// insert(&root, 15);
// insert(&root, 6);
// insert(&root, 12);
// insert(&root, 17);
// insert(&root, 2);
/* Printing nodes of tree */
printf("Select a traversal display type : \n1-Preorder \n2-In order \n3-Post order");
scanf("%d",&c);
switch (c){ //sıralama türünü seç
case 1:
printf("Pre Order Display\n");
print_preorder(root);
break;
case 2:
printf("In Order Display\n");
print_inorder(root);
break;
case 3:
printf("Post Order Display\n");
print_postorder(root);
break;
}
deltree(root); //ağaçtaki tüm düğümleri sil
return 0;
}