#include <stdio.h>
#include <stdlib.h>

typedef struct TreeNode{
    int value;
    struct TreeNode *leftChild;
    struct TreeNode *rightChild;
}Tree;

void preorder(Tree *root)
{
    if(!root) return;

    printf("%d ", root->value);
    preorder(root->leftChild);
    preorder(root->rightChild);
}

void inorder(Tree *root)
{
    if(!root) return;

    inorder(root->leftChild);
    printf("%d ", root->value);
    inorder(root->rightChild);
}

void postorder(Tree *root)
{
    if(!root) return;

    postorder(root->leftChild);
    postorder(root->rightChild);
    printf("%d ", root->value);
}

// just create a tree without any skill
void createTree(Tree *root)
{
    /*   1
       2    3
     4   5   6 */

    Tree *node[5];
    for(int i = 0; i<5; i++){
        node[i] = (Tree *)malloc(sizeof(Tree *));
        node[i]->value = i+2;
    }

    root->value = 1;
    root->leftChild = node[0];
    root->rightChild = node[1];
    node[0]->leftChild = node[2];
    node[0]->rightChild = node[3];
    node[1]->rightChild = node[4];
}


int main()
{
    Tree *treeA = (Tree *)malloc(sizeof(Tree *));
    createTree(treeA);

    printf("preorder : ");
    preorder(treeA);
    printf("\ninorder  : ");
    inorder(treeA);
    printf("\npostorder: ");
    postorder(treeA);
    printf("\n");

    return 0;
}

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()