二叉树

简单二叉树遍历:

比如这个

二叉树

视频1 

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

struct node {
    int data;
    struct node *left;
    struct node *right;
};
typedef struct node Node;

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

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

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

int main() {
    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;

    PreOrder(&n1);//先序
//    InOrder(&n1);//中序
//    PostOrder(&n1);//后序
    return 0;
}