热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

数据结构之节点数与边数的计算(复习笔记)

数据结构之节点数与边数的计算(复习笔记)一、树1.1二叉树1、二叉树的基本概念:二叉树是n(n0)个具有相同类型的数据元素的有限

数据结构之节点数与边数的计算(复习笔记)


一、树


1.1 二叉树

1、二叉树的基本概念:

二叉树是n(n>=0)个具有相同类型的数据元素的有限集合:

(1)当n=0时为空二叉树

(2)当n>0时,数据元素分为:一个称为根的数据元素和两棵分别称为左子树和右子树的数据元素的集合,左、右子树互不相交,并且他们也都是二叉树。

2、满二叉树:深度为k且含含有2k−12^k-12k1个结点的二叉树。

3、完全二叉树:树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。

(1)深度为k的完全二叉树最少有2k−12^{k-1}2k1个节点,最多有2k−12^k-12k1个节点(满二叉树也是完全二叉树)

4、性质3:叶结点与双分支结点的关系为对任何一棵二叉树T,设叶子结点数为n0n_0n0,度为2的结点数为n2n_2n2,那么,n0=n2+1n_0 = n_2 + 1n0=n2+1
证明:
假设度为 1 的结点数为n1 ,二叉树总结点数为n,那么:
n=n0+n1+n2n = n_0 + n_1 + n_2n=n0+n1+n2
结点个数 n 与边数 e 满足关系
e=n–1e = n – 1e=n1
分支边数又节点引出,1度节点引出1条边,2度节点引入2条边,0度节点引出0条边,那么总的边数 e 可以表达为:
e=0×n0+1×n1+2×n2=n1+2n2e = 0×n_0 + 1×n_1 + 2×n_2 = n_1 + 2n_2e=0×n0+1×n1+2×n2=n1+2n2
联立三个等式,得
n0=n2+1n_0 = n_2 + 1n0=n2+1
证毕。


二、图


2.1 图的边与顶点的关系

1、设 n 为顶点数,e 为边或弧的条数:

无向图有:0 ≤ e ≤ n·(n-1) / 2

有向图有:0 ≤ e ≤ n·(n-1)

对有向图来说,每个顶点至多有n-1条弧与其它的n-1个顶点相连,则n个顶点至多有n·(n-1)条弧。

对无向图来说,每条边连接2个顶点,相当于两条对称的弧,故最多有n·(n-1)/2条边。

2、完全图是弧或边达到最大的图:

无向完全图:边数为n·(n-1)/2的无向图

有向完全图:弧数为n·(n-1)的有向图

权:图的边或弧上搭载的权重数据
网:当图上的边或弧上带有权值时,图称为网


推荐阅读
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • 智能车间调度研究进展
    本文综述了基于强化学习的智能车间调度策略,探讨了车间调度问题在资源有限条件下的优化方法。通过数学规划、智能算法和强化学习等手段,解决了作业车间、流水车间和加工车间中的静态与动态调度挑战。重点讨论了不同场景下的求解方法及其应用前景。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 深入理解Java字符串池机制
    本文详细解析了Java中的字符串池(String Pool)机制,探讨其工作原理、实现方式及其对性能的影响。通过具体的代码示例和分析,帮助读者更好地理解和应用这一重要特性。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 随着生活节奏的加快和压力的增加,越来越多的人感到不快乐。本文探讨了现代社会中导致人们幸福感下降的各种因素,并提供了一些改善建议。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有