zoukankan      html  css  js  c++  java
  • Python C3 算法 手动计算顺序

    Python C3 算法 手动计算顺序

     

    手动计算类继承C3算法原则:

    1. 以所求类的直接子类的数目分成相应部分
    2. 按照从左往右的顺序依次写出继承关系
    3. 继承关系第一个第一位,在所有后面关系都是第一个出现的,提取出来,其他都替换掉
    4. 如果步骤3中不成立,就到后面一部分去找
    5. 然后继续在后面这部分找,知道找不到,再回到第一部分去找
    6. 直到结束。

    下面上例题,看下如何应用

    1.从左到右依次写出类继承关系,并分好部分
    左边|右边
    HGECA,HGEA,HGMX,HGMY|HFDBA,HFDCA,HFECA,HFEA
    2.合并过程
    H                GECA,GEA,GMX,GMY|FDBA,FDCA,FECA,FEA
    第一部分第一个第一位G,在所有部分均是第一个出现,或者未出现,可以提取
    HG                ECA,EA,MX,MY|FDBA,FDCA,FECA,FEA
    第一部分第一个第一位E,在第一部分均出现在首位,但是在第二部分出现在非首位,所以到到地位部分去找
    第二部分第一个第一位F,在所有部分均是第一个出现,或者未出现,可以提取
    HGF                ECA,EA,MX,MY|DBA,DCA,ECA,EA
    现在还在第二部分,第二部分第一个第一位D,在所有部分均是第一个出现,或者未出现,可以提取
    HGFD            ECA,EA,MX,MY|BA,CA,ECA,EA
    第二部分第一个第一位B,在所有部分均是第一个出现,或者未出现,可以提取
    HGFDB            ECA,EA,MX,MY|A,CA,ECA,EA
    第二部分第一个第一位A,在第二部分出现在非首位,去第一部分去找
    第一部分第一个第一位E,所有部分均是第一个出现,或者未出现,可以提取
    HGFDB            ECA,EA,MX,MY|A,CA,ECA,EA
    HGFDBE            CA,A,MX,MY|A,CA,CA,A
    第一部分第一个第一位C,所有部分均是第一个出现,或者未出现,可以提取
    HGFDBEC            A,A,MX,MY|A,A,A,A
    第一部分第一个第一位A,所有部分均是第一个出现,或者未出现,可以提取
    HGFDBECA        MX,MY|
    HGFDBECAM        X,Y|
    HGFDBECAMXY

    D C1 B1 A1,D C1 B1 A2|D C2 B1 A1,D C2 B1 A2,D C2 B2 A2|D C3 B2 A2,D C3 B3 A2,D C3 B3 A3
    D            C1 B1 A1,C1 B1 A2|C2 B1 A1,C2 B1 A2,C2 B2 A2|C3 B2 A2,C3 B3 A2,C3 B3 A3
    D C1        B1 A1,B1 A2|C2 B1 A1,C2 B1 A2,C2 B2 A2|C3 B2 A2,C3 B3 A2,C3 B3 A3
    D C1 C2        B1 A1,B1 A2|B1 A1,B1 A2,B2 A2|C3 B2 A2,C3 B3 A2,C3 B3 A3
    D C1 C2 B1        A1,A2|A1, A2,B2 A2|C3 B2 A2,C3 B3 A2,C3 B3 A3
    D C1 C2 B1 A1        A2|A2,B2 A2|C3 B2 A2,C3 B3 A2,C3 B3 A3
    D C1 C2 B1 A1 C3        A2|A2,B2 A2|B2 A2,B3 A2,B3 A3
    D C1 C2 B1 A1 C3 B2        A2|A2,A2|A2,B3 A2,B3 A3
    D C1 C2 B1 A1 C3 B2 B3        A2|A2,A2|A2,A2,A3
    D C1 C2 B1 A1 C3 B2 B3 A2        A3
    D C1 C2 B1 A1 C3 B2 B3 A2 A3
     
     
     
  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/taosiyu/p/11183410.html
Copyright © 2011-2022 走看看