简单的二叉树遍历

#include<stdio.h>
typedef struct Node {
    int data;
    struct Node* left;
    struct Node* right;
}node;


void prv(node* n)
{
    if (n != NULL)
    {
        printf("%d\n", n->data);
        prv(n->left);
        prv(n->right);
    }
}

void mid(node* n)
{
    if (n != NULL)
    {
        mid(n->left);
        printf("%d\n", n->data);
        mid(n->right);
    }
}

void behind(node* n)
{
    if (n != NULL)
    {
        behind(n->left);
        behind(n->right);
        printf("%d\n", n->data);
    }
}
int main(void)
{
    node n1;
    node n2;
    node n3;
    node n4;

    n1.data = 5;
    n2.data = 6;
    n3.data = 7;
    n4.data = 8;

    n1.left = &n2;
    n1.right = &n3;
    n2.left = &n4;
    n2.right = NULL;
    n3.left = NULL;
    n3.right = NULL;
    n4.left = NULL;
    n4.right = NULL;

    prv(&n1);

    puts("");
    behind(&n1);
}

 

posted @ 2020-12-12 19:30  loliconsk  阅读(40)  评论(0)    收藏  举报