二叉树3——三种遍历(递归方法)

xiaoxiao2021-02-28  51

遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍历:左子树->右子树->根节点

用递归方法实现三种遍历还是比较简单的,也比较好理解。

前序: void pre_order (BTreeNode *node) { if (node == NULL) return; printf ("L", node->data); pre_order (node->lchild); pre_order (node->rchild); } 中序: void mid_order (BTreeNode *node) { if (node == NULL) return; mid_order (node->lchild); printf ("L", node->data); mid_order (node->rchild); } 后序: void last_order (BTreeNode *node) { if (node == NULL) return; last_order (node->lchild); last_order (node->rchild); printf ("L", node->data); }

三种方式打印出来的结果就是三种遍历的结果。

转载请注明原文地址: https://www.6miu.com/read-36138.html

最新回复(0)