设计算法利用二叉链表实现二叉树的先、中、后序遍历。
- 先序遍历算法: (1)如果二叉树为空,则返回。 (2)访问根节点。 (3)递归遍历左子树。 (4)递归遍历右子树。
代码实现:
void preOrderTraversal(BiTree tree) { if (tree) { printf("%c ", tree->data); preOrderTraversal(tree->left); preOrderTraversal(tree->right); } }
- 中序遍历算法: (1)如果二叉树为空,则返回。 (2)递归遍历左子树。 (3)访问根节点。 (4)递归遍历右子树。
代码实现:
void inOrderTraversal(BiTree tree) { if (tree) { inOrderTraversal(tree->left); printf("%c ", tree->data); inOrderTraversal(tree->right); } }
- 后序遍历算法: (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 著作权归作者所有。请勿转载和采集!