当前位置:首页>教育>

什么是云(什么是云玩家)

来源:原点资讯(m.360kss.com)时间:2023-02-17 21:21:49作者:YD166手机阅读>>

本文分享自华为云社区《》,作者:1 1=王。

树的基本概念

什么是云,什么是云玩家(1)

  • 树的定义:树是n(n >= 0)个节点的==有限==集。当n=0是,称为空树。
  • 树的特点:
    (1)树的根没有前驱,除根外的其他节点有且仅有一个前驱;
    (2)每个节点都可以有零个或多个后继。
  • 术语:
    (1)节点的度:树中一个节点的孩子个数。
    (2)树的度:树中节点的最大度。
    (3)分支节点:度大于0的节点。
    (4)叶子结点:度为0的节点。
    (5)节点的深度:从根节点开始自顶向下逐层累加。
    (6)节点的高度:从叶子节点开始自底向上逐层累加。
    (7)树的高度:树中节点的最大层数。
    (8)路径:两个节点之间所经过的节点序列。
    (9)路径长度:路径上所经过的边的个数。
    (10)森林:m(m >= 0)棵互不相交的树的集合。
二叉树的基本概念

什么是云,什么是云玩家(2)

  • 二叉树的定义:一种特殊的树形结构,它的特点是每个节点至多有两颗子树(即二叉树中不存在度大于2的节点),并且二叉树的子树有左右之分,不能随意颠倒。
  • 几种特殊的二叉树:
    (1)满二叉树:一棵高度为h,且含有2^h - 1个节点的二叉树。
    (2)完全二叉树:对应相同高度的满二叉树缺失最下层最右边的一些连续叶子结点。
    (3)二叉排序树:左子树上所有节点的关键字都小于根节点的关键字;右子树上所有节点的关键字都大于根节点的关键字;左子树和右子树又各是一棵二叉排序树。(左 < 根 < 右)
    (4)平衡二叉树:任一节点的左子树和右子树的深度之差不超过1的二叉排序树。
  • 二叉树的性质:
    (1)二叉树的第i层上至多有2^i-1^个节点;
    (2)深度为h的二叉树至多有2^k^ - 1个节点;
    (3)对任何一个二叉树,若其终端节点树为n0,度为2的节点树为n2,则n0 = n2 1;
    (4)具有n个节点的完全二叉树的深度为log~2~(n 1)向上取整。
    (5)对完全二叉树按从上到下、从左到右的顺序依次编号1,2,3,…,则有以下关系:
    a. 当i>1时,节点i的双亲的编号为i / 2;
    b. 当2i<=n时,节点i的左孩子编号为2i,否则无左孩子;
    c. 当2i 1<=n时,节点i的右孩子编号为2i 1,否则无右孩子;
    d.节点i所在层次为log~2~i 1(向下取整)。
存储结构 二叉树的存储结构
  • 顺序存储结构:用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储在某个数组下标为i-1的分量中。(适合完全二叉树和满二叉树)
  • 链式存储结构:使用链表节点来存储二叉树中的每个节点。二叉链表包括数据域data、左指针域lchild和右指针域rchild三个域。

typedef struct BiTNode{ TElemType data; struct BiTNode *lchild, *rchild; }BiTNode,*BiTree;树的存储结构

  • 双亲表示法:用一组连续空间来存储树的每个结点,同时在每个结点中,附设一个指示器指示其双亲结点到链表中的位置。

#define MAX_TREE_SIZE 100 //节点最大个数 typedef struct PTNode{ //节点结构 TElemType data; int parent; //双亲位置域 }PTNode; typedef struct{ //树结构 PTNode nodes[MAX_TREE_SIZE ]; int root,n; //根的位置和节点数 }PTree;

  • 孩子表示法:将没得节点的孩子节点都用单链表链接起来形成一个线性结构,此时n个节点就有n个孩子链表。

#define MAX_TREE_SIZE 100 //节点最大个数 typedef struct CTNode{ //孩子节点 int child; struct CTNode *next; }*ChildPtr; typedef struct{ TElemType data; ChildPtr firstChild; //孩子链表头指针 }CTBox; typedef struct{ //树结构 CTBox nodes[MAX_TREE_SIZE ]; int root,n; //根的位置和节点数 }CTree;

  • 孩子兄弟表示法(二叉树表示法):以二叉链表作为树的存储结构。每个节点包括三部分内容:节点值、指向第一个孩子结点的指针和指向下一个兄弟节点的指针。

typedef struct CSNode{ //节点结构 TElemType data; struct CSNode *firstChild,*nextSibling; }CSNode,*CSTree;树、二叉树和森林的相互转换树转换为二叉树

  • 规则:每个节点左指针指向它的第一个孩子,右指针指向它在树中的相邻右兄弟。由于根节点没有兄弟,所以对应的二叉树没有右子树。
  • 画法:(1)在兄弟节点之间加一条线;(2)在每棵树根之间加一条线;(3)以第一棵根为轴心,顺时针旋转45度。
森林转换为二叉树
  • 规则:先将森林中的每棵树转换为二叉树,由于任何一棵和树对应的二叉树的右子树为空,若把森林中第二棵树根视为第一棵树根的右兄弟,即将第二棵树对应的二叉树当做第一棵二叉树根的右子树,将第三棵树对应的二叉树当做第二棵二叉树根的右子树…以此类推,即可将森林转换为二叉树。
  • 画法:(1)将森林中的每棵树转换为二叉树;(2)对每个节点,只保留它与第一个孩子的连线;(3)以根为轴心,顺时针旋转45度。
二叉树转换为森林
  • 若二叉树非空,则二叉树的根及其左子树为第一棵树的二叉树形式,将根与右子树断开
  • 将右子树视为一棵新的二叉树,重复第一步。

点击下方,第一时间了解华为云新鲜技术~

栏目热文

云服务是什么意思干什么用(云服务对个人有什么用)

云服务是什么意思干什么用(云服务对个人有什么用)

云手机是云端中的一款虚拟手机。用户可以将手机上的应用程序转移到云端中,并分担当地手机的计算能力和存储压力。就是将云计算技...

2023-02-17 21:03:03查看全文 >>

云服务为什么叫云服务(云服务的本质实际是什么)

云服务为什么叫云服务(云服务的本质实际是什么)

云服务是一种新兴的信息技术,它提供了快速、可靠、可扩展的计算平台。它利用宽带技术,将计算资源以在线的方式连接在云端,供用...

2023-02-17 21:30:56查看全文 >>

html怎么读(html发音方法)

html怎么读(html发音方法)

HTML的作用HTML是用来开发网页的,它是开发网页的语言HTML的定义全称HyperText Mark-up Lang...

2023-02-17 21:15:01查看全文 >>

html是什么文件(html是哪种文件格式)

html是什么文件(html是哪种文件格式)

一、网页1.网站是网页的集合,网页是构成网站的基本元素,是由图片、链接、文字、声音、视频等元素组成的HTML格式文件。2...

2023-02-17 21:24:19查看全文 >>

html与html5的区别

html与html5的区别

互联网的发展总是在不断地催生新技术的产生,而 HTML5 和 CSS3 是最近一直被讨论的热门话题,对于每个互联网开发者...

2023-02-17 21:31:29查看全文 >>

大专学云计算很扯淡吗(五年制大专学云计算有前途么)

大专学云计算很扯淡吗(五年制大专学云计算有前途么)

随着现代网络信息技术的不断发展,网络逐渐成为现代人生活的一个重要组成部分。云计算技术是分布式处理、并行处理和网格计算的发...

2023-02-17 21:19:56查看全文 >>

泥鳅头为什么不能吃(泥鳅头可以吃吗)

泥鳅头为什么不能吃(泥鳅头可以吃吗)

看俞白眉们在帕劳,当地人热情推荐必吃美食——水果蝙蝠,结果几位女士直接奔向洗手间,而他也连说十几个No,而我是连那图也不...

2023-02-17 21:03:22查看全文 >>

泥鳅汤癌症病人能吃吗(癌症患者长期喝泥鳅汤)

泥鳅汤癌症病人能吃吗(癌症患者长期喝泥鳅汤)

每天中午时分,江西省肿瘤医院附近一条并不宽敞的巷子里总是特别热闹,这里有个露天厨房,来这里做饭的都是在医院接受治疗的患者...

2023-02-17 21:14:00查看全文 >>

泥鳅汤升白细胞做法(化疗泥鳅升白细胞的做法)

泥鳅汤升白细胞做法(化疗泥鳅升白细胞的做法)

喜欢本文?别忘记关注、点赞、收藏、转发噢!各位好!“来问脉姐”栏目等你来!健康医疗类的问题,你想弄明白的,都能问! 所以...

2023-02-17 20:55:57查看全文 >>

泥鳅癌症病人能吃吗(泥鳅吃了对癌症病人好吗)

泥鳅癌症病人能吃吗(泥鳅吃了对癌症病人好吗)

作为一名肿瘤科医生,每天查房,问完患者的情况,查体完成,总被患者或家属以“吃什么”作为结束,“医生,我XX现在正在化疗,...

2023-02-17 21:06:15查看全文 >>

文档排行