• 第五章小结


    学会了树和二叉树的定义,以及树的基本术语

    二叉树的链表存储表示:

    typedef struct BiTNode{
         TElemType data;
         struct BiTNode *lchild, *rchild;    
    }BiTNode, *BiTree;

    学会了先序(根->左->右),中序(左->根->右),后序(左->右->根)以及层次(自上而下,从左到右) 相应代码如下:

    void InOrderTraverse(BiTree T){//中序遍历 
        if(T)//如果T非空 
        {
            InOrderTraverse(T->lchild);
            cout<<T->data;//左根右的顺序输出 
            InOrderTravese(T->rchild);
        }
    }
    
    void PreOrderTraverse(BiTree T){//先序遍历 
        if(T)//如果T非空 
        {
            cout<<T->data;//根左右的顺序输出 
            PreOrderTraverse(T->lchild);
            PreOrderTraverse(T->rchild);
        }
    }
    
    void AfterTraverse(BiTree T){//后序遍历 
        if(T)//如果T非空 
        {
            AfterTraverse(T->lchild);
            AfterTraverse(T->rchild);
            cout<<T->data;//左右根的顺序输出 
        }
    }

    了解到有一种叫二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树),是左孩子小于根,根小于右孩子

    还有满二叉树,完全二叉树:

    二叉树三个性质:

    1.第i层最多有2^(i-1)个结点

    2.深度为k的二叉树最多有2^k - 1个结点

    3.设度为0的结点数为N0, 1为N1, 2为N2, 则N0 = N2 +1

    结点总数N = N0+ N1 +  N2 = N1 + 2*N2 +1

    树的存储结构:

    1.双亲表示法(由下而上)

    2.孩子表示法(由上而下)

    3.孩子兄弟法:又称二叉树表示法,或二叉链表表示法,即以二叉链表做树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点,分别命名为 firstchild 域和 nextsibling域

    II- - - - - -树的二叉链表(孩子-兄弟)存储表示-----

    typedef struct CSNode{
    ElemType data;
    struct CSNode *firstchild, *nextsibling;
    ) CSNode,*CSTree;
     
     
    森林和二叉树的转换:
      左孩子右兄弟

     哈夫曼树:

    没有最优哈夫曼树,哈夫曼树一定是最优二叉树,最优二叉树的带权路径长度(WPL)一定等于哈夫曼树构建出来的WPL;

    构建方法:不断选取最小的两个,已经被选的两个的根也在选择范围内,选出作为孩子,不断地往上构建

    如上图构建出来最后的哈夫曼树WPL为:2*3+4*3+5*2+7=35 

     
    哈夫曼编码:
    性质1 哈夫曼编码是前缀编码。 
    性质2 哈夫曼编码是最优前缀编码。 
    约定为左0右1
    如下图 

     
     
     
     
     
     
  • 相关阅读:
    HBase数据存储格式
    百元买百鸡
    驾驶机动车在高速公路上倒车、逆行、穿越中央分隔带掉头的一次记6分。
    驾驶机动车在高速公路遇到能见度低于200米的气象条件时,最高车速是多少?_2600218
    驾驶人违反交通运输管理法规发生重大事故后,因逃逸致人死亡的,处3年以上7年以下有期徒刑。
    国家级心理咨询师培训(二、三级)_课程开设_北京林业大学在职课程进修班(同等学历)网站
    三级心理咨询师_百度百科
    国家二级心理咨询师_百度百科
    国家二级心理咨询师
    国家二级心理咨询师
  • 原文地址:https://www.cnblogs.com/ojkojk/p/12967276.html
Copyright © 2020-2023  润新知