【数据结构】树tree

树的遍历

广度遍历Breadth-first traversal

Breadth-first traversal is the traversal strategy used in the binary tree.Breadth first traversal, also known as level order traversal is the traversal strategy used in a binary tree. It involves visiting all the nodes at a given level.

深度遍历Depth-first traversal

level order traversal

O(n) is the time complexity of level order traversal.

树的类别

二叉树pedigree tree(binary tree)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGF2aWRfSHp5,size_12,color_FFFFFF,t_70,g_se,x_16

lineal tree

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGF2aWRfSHp5,size_12,color_FFFFFF,t_70,g_se,x_16

tree用链表实现(不唯一):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGF2aWRfSHp5,size_20,color_FFFFFF,t_70,g_se,x_16

树的变例:先序(先访问根,先左后右),中序(先访问左边再访问根,再访问右),后序(左-》右-》根)

完全二叉树

定义:除了最后一层,其他每层结点都是最大值,最后一层的所有节点都集中在左方。

满二叉树

定义:每层结点数都是最大值,k层有2^k-1个结点。

搜索二叉树(search binary tree)

特点:In the tree, the values of all the items in its left subtree are smaller than the item in X, and the values of all the items in its right subtree are larger than the item in X.

在树中,左子树中所有项的值都小于X中的项,而右子树中所有项的值都大于X中的项。

特例:adl二叉树

B树

1.节点排序

2.一个节点了可以存多个元素,多个元素也排序了

B+树

B树升级版,拥有B树的特点

叶子节点之间有指针

非叶子节点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好顺序

专业名词

The average depth of a binary tree is given as O(√N). In case of a binary search tree, it is O(log N).

节点(node)的集合,要么空集,要么包含root(node r)和多个非空子树。

有n个节点的树有n-1个结点的边

degree of a node :number of subtrees of the node.  For example, degree(A) = 3, degree(F) = 0.

degree of a tree : watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARGF2aWRfSHp5,size_13,color_FFFFFF,t_70,g_se,x_16

parent : a node that has subtrees.

children : the roots of the subtrees of a parent.

 siblings : children of the same parent.

leaf ( terminal node ) : a node with degree 0 (no children).

path from n1 to nk :a (unique) sequence of nodes n1, n2, …, nk   

length of path : number of edges on the path.

depth of ni : length of the unique path from the root to ni.   Depth(root) = 0.

height of ni : length of the longest path from ni to a leaf.  Height(leaf) = 0, and height(D) = 2.

height (depth) of a tree :height(root) = depth(deepest leaf).

ancestors of a node :all the nodes along the path from the node up to the root.

descendants of a node :all the nodes in its subtrees.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/501235.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

郭林保大夫——帕金森病明明很早就诊疗了,还是见不到好效果?

郭林保大夫:帕金森是一种常见的神经系统退行性疾病,如果不及时治疗,病情会逐渐加重,导致患者的生活质量严重下降。可能会出现肌肉僵硬、震颤、运动障碍等症状,使患者行动不便,甚至丧失自理能力。此外&#…

实时语音识别(Python+HTML实战)

项目下载地址:FunASR 1 安装库文件 项目提示所需要下载的库文件:pip install -U funasr 和 pip install modelscope 运行过程中,我发现还需要下载以下库文件才能正常运行: 下载:pip install websockets,pi…

ComfyUI SDWebUI升级pytorch随记

目前使用的版本是去年10月的1.6版本,有点老。希望支持新的特性,于是乎开始作死。从升级torch开始。先看看已有的版本: (venv) rootubuntu-sd-server:~# pip show torch Name: torch Version: 2.0.1 Summary: Tensors and Dynamic neural net…

【Spring源码】WebSocket做推送动作的底层实例

一、前瞻 Ok,开始我们今天的对Spring的【模块阅读】。 那就挑Web里的WebSocket模块,先思考下本次阅读的阅读线索: WebSocket在Spring里起到什么作用这个模块采用了什么设计模式我们都知道WebSocket可以主动推送消息给用户,那做推…

点点数据K参数加密逆向分析(RPC方案跟加密算法还原)

文章目录 1. 写在前面2. 接口分析3. 断点分析4. RPC调用5. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长…

新数字时代的启示:揭开Web3的秘密之路

在当今数字时代,随着区块链技术的不断发展,Web3作为下一代互联网的概念正逐渐引起人们的关注和探索。本文将深入探讨新数字时代的启示,揭开Web3的神秘之路,并探讨其在未来的发展前景。 1. Web3的定义与特点 Web3是对互联网未来发…

金蝶云星空和旺店通·企业奇门接口打通对接实战

金蝶云星空和旺店通企业奇门接口打通对接实战 对接源平台:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助企业…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要: LightGBM是一种高效的梯度提升框架,它在处理大规模数据时表现出色,并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别,并使用Python对其进行…

c++深拷贝和浅拷贝的区别

浅拷贝:在用户没有自创拷贝构造函数时,c编译器会自己提供一个,进行简单的赋值操作 深拷贝:在堆区重新申请空间,进行拷贝操作 我们先创建一个关于person的类: 在有创建两个变量 指针m_height和 整形常量 m…

揭秘情绪识别:如何让AI读懂你的心声?

最近我在研究大语言模型,想用它来给样本打分。 起初,我尝试让模型用1到5分来评分,但它总是极端地给出最低分或最高分,评分缺乏中间地带。 于是我换了个方法,不再用数字,而是用描述性的词语,比…

【Git项目部署到本地仓库】

1. 下载安装Git 根据您的操作系统,访问Git的官方网站:https://git-scm.com/download/win 具体安装教程请访问其他博客,例如:http://t.csdnimg.cn/I28VO 安装完成后,您可以通过在winR键输入cmd打开命令行输入 git -…

YOLOv9改进策略 :block优化 | 无需TokenMixer也能达成SOTA性能的极简ViT架构 | CVPR2023 RIFormer

💡💡💡本文改进内容: token mixer被验证能够大幅度提升性能,但典型的token mixer为自注意力机制,推理耗时长,计算代价大,而RIFormers是无需TokenMixer也能达成SOTA性能的极简ViT架构…

2024总结的vue3的面试题

一、vue2和vue3的区别 答案: 1、数据绑定原理不同 vue2:vue2的数据绑定是利用ES5的一个API:Object.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的。 vue3:vue3中使用了ES6的Proxy API对数据代理…

linux提权笔记

1 linux提权简介 Linux提权,简单来说,就是用户尝试获取高于其当前权限级别的系统访问权限的过程。在Linux系统中,root用户拥有最高的权限,能够执行任何操作,包括修改系统文件、安装软件、管理用户账户等。而普通用户通…

为什么写博客对程序员很重要

之前写过一段时间博客,但是后面半途而废了。最近开始频繁更新,把自己一些学习心得系统得整理后发布出来,希望以后能够坚持写下去。 写博客对程序员有多重要?这个是自己在反思的一个问题,上下班在地铁上想,…

HCIP---MGRE和GRE实验

一、配置ip R1: [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [R1-GigabitEthernet0/0/0]int s4/0/0 [R1-Serial4/0/0]ip add 15.1.1.1 24 [R1]ip route-static 0.0.0.0 0 15.1.1.5 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.2.2…

VsCode正确解决vue3+Eslint+prettier+Vetur的配置冲突

手把手教你VsCode正确解决vue3EslintprettierVetur的配置冲突 VsCode正确解决vue3EslintprettierVetur的配置冲突Eslint文档查看和修改规则:step1:首先快速浏览下规则简要setp2: ctrlF 搜索你要配置规则的英文名,例如attributesetp3: 修改配置…

2024最新华为OD机试试题库全 -【两个字符串间的最短路径问题】- C卷

1. 🌈题目详情 1.1 ⚠️题目 给定两个字符串,分别为字符串 A 与字符串 B。 例如 A字符串为 “ABCABBA”,B字符串为 “CBABAC” 可以得到下图 m * n 的二维数组,定义原点为(0,0),终点为(m,n),水平与垂直的每一条边距离为1,映射成坐标系如下图。 从原点 (0,0) 到 (0,…

【Vue3源码学习】— CH2.6 effect.ts:详解

effect.ts:详解 1. 理解activeEffect1.1 定义1.2 通过一个例子来说明这个过程a. 副作用函数的初始化b. 执行副作用函数前c. 访问state.countd. get拦截器中的track调用e. 修改state.count时的set拦截器f. trigger函数中的依赖重新执行 1.3 实战应用1.4 activeEffect…

[幻灯片]软件需求设计方法学全程实例剖析-03-业务用例图和业务序列图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 pdf已上传至本号的CSDN资源,或到以下地址下载: http://umlchina.com/training/umlchina_03_bm.pdf