二叉树的前中后三种遍历顺序

    技术2026-08-11  24

    写在前面

    二叉树的三种遍历是数据结构与算法必须要回的知识,很多人光会理论而不懂代码的实现,或者自己很难亲自实现代码的编写。那么就需要好好思考为什么自己实现不了,是递归没写好还是对语言的不熟悉又或者是其他的原因呢?

    三种遍历的简单概述

    书上说的很清楚二叉树的遍历是如何实现的,那么我在这里就简单的说一下二叉树的先序遍历。先序遍历其实就是每次先访问一棵树的根节点,再接着访问根节点的左子树,再访问根节点的右子树,依次递归下去,每棵子树也有根节点和左右子树…

    简答例题(请先手写出答案再看代码的具体实现)

    代码的具体实现(C语言)

    #include <iostream> using namespace std; typedef struct node { int data; node* left; node* right; } Node; //先序遍历 void preorder(Node* node) { if(node != NULL) { printf("%d ",node->data); preorder(node->left); preorder(node->right); } } //中序遍历 void inorder(Node* node) { if(node != NULL) { inorder(node->left); printf("%d ",node->data); inorder(node->right); } } //后序遍历 void postorder(Node* node) { if(node!= NULL) { postorder(node->left); postorder(node->right); printf("%d ",node->data); } } int main() { Node n1,n2,n3,n4; n1.data=5; n1.left=&n2; n1.right=&n3; n2.data=7; n2.left=NULL; n2.right=NULL; n3.data=2; n3.left=&n4; n3.right=NULL; n4.data=9; n4.left=NULL; n4.right=NULL; printf("先序遍历为:"); preorder(&n1); printf("\n"); printf("中序遍历为:"); inorder(&n1); printf("\n"); printf("后序遍历为:"); postorder(&n1); printf("\n"); return 0; }

    例题答案

    Processed: 0.009, SQL: 9