希赛考试网
首页 > 软考 > 软件设计师

二叉树遍历的例子

希赛网 2024-01-28 15:30:03

在计算机科学中,二叉树是一种树状数据结构,在其中每个节点最多有两个子节点,一般分为左子树和右子树。此外,二叉树通常有三种遍历方式:前序遍历、中序遍历和后序遍历,这种遍历方式是指如何按照一定的顺序来递归地访问二叉树中的每个节点。本文将从多个角度分析二叉树遍历的例子。

1. 前序遍历例子

前序遍历的顺序是:先访问节点本身,再访问左子节点,再访问右子节点。因此,对于下面这棵二叉树的遍历顺序,就是 1-2-4-5-3-6-7。

```

1

/ \

2 3

\

4

\

5

```

2. 中序遍历例子

中序遍历的顺序是:先访问左子节点,再访问节点本身,再访问右子节点。因此,对于下面这棵二叉树的遍历顺序,就是 4-2-5-1-6-3-7。

```

1

/ \

2 3

\

4

\

5

```

3. 后序遍历例子

后序遍历的顺序是:先访问左子节点,再访问右子节点,最后访问节点本身。因此,对于下面这棵二叉树的遍历顺序,就是 4-5-2-6-7-3-1。

```

1

/ \

2 3

\

4

\

5

```

4. 代码实现

下面将给出前序遍历的代码实现:

```

class TreeNode(object):

def __init__(self, val):

self.val = val

self.left = None

self.right = None

def preorderTraversal(root):

"""

:type root: TreeNode

:rtype: List[int]

"""

res = []

pre_order(root, res)

return res

def pre_order(node, res):

"""

:type node: TreeNode

:type res: List[int]

"""

if node is None:

return

res.append(node.val)

pre_order(node.left, res)

pre_order(node.right, res)

```

5. 深度优先遍历和广度优先遍历

除了前序遍历、中序遍历和后序遍历之外,还有两种常见的遍历方式:深度优先遍历和广度优先遍历。深度优先遍历是指从根节点开始,尽可能深地搜索每一个子节点,再返回上一个节点继续搜索;而广度优先遍历则是指从根节点开始,按照层级顺序依次访问每个节点。

6.

微信扫一扫,领取最新备考资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考报考咨询

微信扫一扫,定制学习计划