您的位置:首页 > 娱乐 > 八卦 > 泉州免费做网站_要搭建网站_洛阳seo博客_广州快速排名

泉州免费做网站_要搭建网站_洛阳seo博客_广州快速排名

2024/10/13 4:24:07 来源:https://blog.csdn.net/qq_32882309/article/details/142635800  浏览:    关键词:泉州免费做网站_要搭建网站_洛阳seo博客_广州快速排名
泉州免费做网站_要搭建网站_洛阳seo博客_广州快速排名

本文目录

    • 写在前面:大“树”下好乘凉
      • 定义
      • 主要术语
      • 基本特征
      • 主要应用领域:
    • 05 二叉树Binary tree
      • S1 说明
      • S2 示例
      • S3 二叉树类型
        • (1)满二叉树(Perfect Binary Tree)
        • (2)完全二叉树(Complete Binary Tree)
        • (3)二叉搜索树(Binary Search Tree)
        • (4)平衡二叉树(Balanced Binary Tree)
        • (5)斜树(Skewed Tree)
        • (6)完满二叉树(Full Binary Tree)
        • (7)堆(二叉堆)
      • S4 遍历二叉树
        • (1)深度优先遍历(DFS)
        • (2)广度优先遍历(BFS)
      • S5 遍历二叉树python代码

往期链接

01 数组02 链表03 栈04 队列

写在前面:大“树”下好乘凉

定义

树(Tree)是一种非线性的层次化数据结构,由节点和连接节点的边组成。它模拟了一个倒置的树,根在顶部,分支向下延伸。

主要术语

  • 节点(Node): 树中的基本单元,包含数据和指向其他节点的链接。
  • 根节点(Root): 树的顶层节点,没有父节点。
  • 父节点(Parent): 直接连接到其下层节点的节点。
  • 子节点(Child): 直接连接到其上层节点的节点。
  • 叶节点(Leaf): 没有子节点的节点。
  • 内部节点(Internal Node): 至少有一个子节点的非叶节点。
  • 兄弟节点(Siblings): 具有相同父节点的节点。
  • 边(Edge): 连接两个节点的线。
  • 路径(Path): 从一个节点到另一个节点的节点序列。
  • 深度(Depth): 从根节点到特定节点的边的数量。
  • 高度(Height): 从节点到其最远叶子节点的最长路径上的边的数量。
  • 子树(Subtree): 由节点和其所有后代组成的树。

在这里插入图片描述

基本特征

  • 层次结构: 树形结构天然地表示层次关系。
  • 递归性: 每个子树本身也是一棵树。
  • 无环: 树中不存在环路。
  • 连通性: 任意两个节点之间有且仅有一条路径。
  • n个节点的树有n-1条边
  • 动态性: 树结构可以方便地进行插入、删除操作。

主要应用领域:

  • 文件系统: 操作系统中用于组织文件和目录。
  • 数据库索引: B树和B+树用于实现高效的数据检索。
  • 编译器设计: 抽象语法树用于表示程序的结构。
  • 网络路由: 用于IP地址查找和数据包转发。
  • 人工智能: 决策树用于分类和预测。
  • 图形渲染: 场景图和BSP树用于3D图形渲染。
  • 压缩算法: 哈夫曼树用于数据压缩。
  • 搜索引擎: Trie树用于快速字符串匹配。
  • XML/HTML解析: DOM树用于表示文档结构。
  • 生物信息学: 用于表示生物分类和进化关系。

05 二叉树Binary tree

S1 说明

二叉树是一种特殊的树形数据结构,其中每个节点最多有两个子节点,通常称为"左子节点"和"右子节点"。二叉树的主要特点包括:

  • 每个节点最多有两个子节点
  • 左子节点通常表示小于父节点的值
  • 右子节点通常表示大于或等于父节点的值
  • 可以为空(称为空树)

二叉树的一些重要概念:

  • 根节点:树的顶部节点
  • 叶节点:没有子节点的节点
  • 深度:从根到该节点的边的数量
  • 高度:从该节点到最远叶节点的边的数量

S2 示例

import matplotlib.pyplot as plt
import networkx as nxclass TreeNode:def __init__(self, value):self.value = valueself.left = Noneself.right = Noneclass BinaryTree:def __init__(self):self.root = Nonedef insert(self, value):if not self.root:self.root = TreeNode(value)else:self._insert_recursive(self.root, value)def _insert_recursive(self, node, value):if value < node.value:if node.left is None:node.left = TreeNode(value)else:self._insert_recursive(node.left, value)else:if node.right is None:node.right = TreeNode(value)else:self._insert_recursive(node.right, value)def inorder_traversal(self):result = []self._inorder_recursive(self.root, result)return resultdef _inorder_recursive(self

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com