1. 先序遍历算法: (1)如果二叉树为空,则返回。 (2)访问根节点。 (3)递归遍历左子树。 (4)递归遍历右子树。

代码实现:

void preOrderTraversal(BiTree tree) { if (tree) { printf("%c ", tree->data); preOrderTraversal(tree->left); preOrderTraversal(tree->right); } }

  1. 中序遍历算法: (1)如果二叉树为空,则返回。 (2)递归遍历左子树。 (3)访问根节点。 (4)递归遍历右子树。

代码实现:

void inOrderTraversal(BiTree tree) { if (tree) { inOrderTraversal(tree->left); printf("%c ", tree->data); inOrderTraversal(tree->right); } }

  1. 后序遍历算法: (1)如果二叉树为空,则返回。 (2)递归遍历左子树。 (3)递归遍历右子树。 (4)访问根节点。

代码实现:

void postOrderTraversal(BiTree tree) { if (tree) { postOrderTraversal(tree->left); postOrderTraversal(tree->right); printf("%c ", tree->data); }

设计算法利用二叉链表实现二叉树的先、中、后序遍历。

原文地址: https://www.cveoy.top/t/topic/cpGY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录