数据结构——树和二叉树



    叶子结点:指的是度为0的结点(5,6,7,3,9,8为叶子结点);


    分支结点:除了叶子结点,其他的结点(包括根结点)称之为分支结点(1,2,4,8);



        叶子结点分支结点的关系:互补关系

        叶子结点+分支结点 = 总结点


    内部结点:在分支结点基础上,除去根节点,其余的就是内部结点(2,4,8);


    结点的度:结点的下一层有多少个相关联的结点就有多少个度;


            1的度为3,2的度为3,4的度为1,8的度为2,3的度为0;

    树的度:所有结点的度当中,度数最高的一个(3);


    (父结点子结点兄弟结点):是相对的量

    ps=>

        5结点相对2结点:它是子结点

        2结点相对5结点:他是父结点

        5结点相对6,7结点:它是兄弟结点

    也就是说。2为5,6,7的父结点。 5,6,7为2的子结点。5,6,7互为兄弟结点


    层次:这里有4层


    唯一没有计算入度的就是根结点;

    假设一棵树的总结点数为n,总度数为k,那么 n = k+1;


        练习01:


练习01

1.先求总结点数: n = 3*2+2*1+1 = 9;

最后得出结果C正确;

    树的遍历


        前序遍历:先访问根,再一次访问子结点;

            1-2-5-6-7-3-4-8-9-10


        后序遍历:先访问子结点,再访问根点

            5-6-7-2-3-9-10-8-4-1


        层序遍历:从层次遍历

            1-2-3-4-5-6-7-8-9-10


二叉树不是树的一种特殊情形,尽管其与树有许多相似之处,但树和二叉树有两个主要差别:

1. 树中结点的最大度数没有限制,而二叉树结点的最大度数为2;

2. 树的结点无左、右之分,而二叉树的结点有左、右之分。

二叉树并不是特殊的树,而是一种独立的数据结构


二叉树

    满二叉树:二叉树上的所有结点都是充实的,饱满的,没有缺结点(完整的金字塔型);


    完全二叉树:把最后一层和前面若干层划分开,假如一颗完全二叉树有n层,前面的n-1层为满树,最后一层结点排列必须

    要有规律,从左到右排列


    非完全二叉树:缺少结点,且排列无顺序


    二叉树重要特征:


        1.在二叉树的第i层上最多有2^(i-1)个结点(i>=1);


        2.深度为k的二叉树最多有(2^k)-1个结点(k>=1);


        3.对任何一棵二叉树,如果其叶子结点数为n0,度为2的结点数为n2.则n0 = n2+1;

            总结点数(n) = 总度数(k)+1  同样适用于二叉树;


        推导:

        =>  设一棵二叉树,它的叶子结点数n0个,度2的结点数n2,度1的结点数n1;

        那么:  n1+n2+n0 = 所有结点的总数 = k+1;

        然后:  k = n1*1+n2*2+n0*0;

        可得:  n1+n2+n0 = n1+n2*2+1 => n0 = n2+1;

二叉树特性:

    如果对一棵有n个结点的完全二叉树的结点按是层序编号(从第一层到 math.floor( log2^n )+1 层,每层从左到右 ),

    则对任一结点i ( 1<=i<=n ),有

        如果i=1,则结点i无父结点,是二叉树的根,如果i>1,则父结点是 math.floor( i/2 );


        如果2i>n,则结点i为叶子结点,无左子结点。否则,其左子结点是结点2i;


        如果2i+1>n,则结点i无右子结点,否则,其右子结点是结点2i+1;


练习02


练习02

利用公式进行换算,并且要知道完全二叉树度数为1的结点个数要么没有(0),要么只有一个(1);

n1+n2+n0 = 总结点数;

因为:n0 = n2+1; ==> n2 = n0-1;

所以所得    n1 + 2n0 = 768

最后答案为B;

二叉树的遍历:


二叉树的遍历

    前序遍历:先访问根,再一次访问子结点;

        1-2-4-5-7-8-3-6


    中序遍历:先访问左结点,再访问根结点,再访问右结点;

        4-2-7-8-5-1-3-6


    后序遍历:先访问左结点,再访问右结点,再访问根结点;

        4-8-7-5-6-2-3-1


    层序遍历:从层次遍历;

        1-2-3-4-5-6-7-8


练习03


练习03

答案:C

树与二叉树的转换:


树转二叉树

    1.先把一棵树的全部左子结点留下,右子结点线划掉;


    2.把兄弟结点连接起来,不同父结点的兄弟结点不需要连;


转换后的二叉树和之前的树比较:

    前序遍历两者相同

    前序遍历:1-2-3-5-6-7-4-8-9


    二叉树的中序遍历 = 树的后序遍历

    二叉树的中序遍历:2-5-6-7-3-8-9-4-1

    树的后序遍历:2-5-6-7-3-8-9-4-1


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351