个人介绍
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
🦁作者简介:一名喜欢分享和记录学习的在校大学生
💥个人主页:code袁
💥 个人QQ:2647996100
🐯 个人wechat:code8896
专栏导航
code袁系列专栏导航
1.毕业设计与课程设计:本专栏分享一些毕业设计的源码以及项目成果。🥰🥰🥰
2.微信小程序开发:本专栏从基础到入门的一系开发流程,并且分享了自己在开发中遇到的一系列问题。🤹🤹🤹
3.vue开发系列全程线路:本专栏分享自己的vue的学习历程。非常期待和您一起在这个小小的互联网世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
当然,我可以为您提供关于树和二叉树的学习笔记,包括代码和例子。请看下面的内容:
1、 什么是树?
树是一种非线性数据结构,由节点(或称为顶点)和边组成。树中有一个特殊的节点称为根节点,其他节点通过边相连,形成层次结构。每个节点可以有零个或多个子节点。
树的特点
- 根节点:树中有一个根节点,是树的起始节点。
- 父节点和子节点:除了根节点外,每个节点都有一个父节点和零个或多个子节点。
- 层次结构:树形成层次结构,节点之间通过边相连。
树的例子
# 创建一个树
class TreeNode:def __init__(self, value):self.value = valueself.children = []# 构建树结构
root = TreeNode(1)
child1 = TreeNode(2)
child2 = TreeNode(3)
root.children = [child1, child2]
创建树
class TreeNode:def __init__(self, value):self.value = valueself.children = []# 创建树结构
root = TreeNode('A')
child1 = TreeNode('B')
child2 = TreeNode('C')
child3 = TreeNode('D')root.children = [child1, child2, child3]child1.children = [TreeNode('E'), TreeNode('F')]
child2.children = [TreeNode('G')]
child3.children = [TreeNode('H'), TreeNode('I')]# 树结构示意图:
# A
# / | \
# B C D
# / \ / \
# E F G H
# \
# I
树的遍历
前序遍历(Preorder Traversal)
前序遍历的顺序是:根节点 -> 左子树 -> 右子树
def preorder_traversal(node):if not node:returnprint(node.value)for child in node.children:preorder_traversal(child)# 执行前序遍历
preorder_traversal(root)
# Output: A B E F C G D H I
后序遍历(Postorder Traversal)
后序遍历的顺序是:左子树 -> 右子树 -> 根节点
def postorder_traversal(node):if not node:returnfor child in node.children:postorder_traversal(child)print(node.value)# 执行后序遍历
postorder_traversal(root)
# Output: E F B G C H I D A
层序遍历(Level Order Traversal)
层序遍历按层级顺序从上到下遍历树的节点
from collections import dequedef level_order_traversal(root):if not root:returnqueue = deque([root])while queue:node = queue.popleft()print(node.value)for child in node.children:queue.append(child)# 执行层序遍历
level_order_traversal(root)
# Output: A B C D E F G H I
2、什么是二叉树?
二叉树是一种特殊的树结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树常用于实现搜索算法和排序算法。
二叉树的特点
- 左子节点和右子节点:每个节点最多有两个子节点,分别为左子节点和右子节点。
- 遍历方式:二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。
二叉树的例子
# 创建一个二叉树
class BinaryTreeNode:def __init__(self, value):self.value = valueself.left = Noneself.right = None# 构建二叉树结构
root = BinaryTreeNode(1)
root.left = BinaryTreeNode(2)
root.right = BinaryTreeNode(3)
🎉写在最后
🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~
你的支持就是我更新的最大动力💪~