math2b = Course("MATH2B")
    math2a = Course("MATH2A")
    ics6n = Course("ICS6N")
    math3a = Course("MATH3A")
    ics46 = Course("ICS46")
    ics45c = Course("ICS45C")
    ics33 = Course("ICS33")
    ics32 = Course("ICS32")
    ics31 = Course("ICS31")
    cs161 = Course("CS161")
    stats67 = Course("STATS67")
    stats7 = Course("STATS7")
    stats120a = Course("STATS120A")
    cs178 = Course("CS178")

    math2b.addPrerequisite(math2a)
    ics46.addPrerequisite(ics45c)
    ics45c.addPrerequisite(ics33)
    ics33.addPrerequisite(ics32)
    ics32.addPrerequisite(ics31)
    stats67.addPrerequisite(math2b)
    cs161.addPrerequisites([ics6b, ics6d, math2b, ics46])
    cs178.addPrerequisites([
        math2b, [stats67, [stats7, stats120a]], ics6b, ics6d, [math3a, ics6n]
    ])

    course_list = [
        ics6b, ics6d, math2b, math2a, stats67, stats7, stats120a, ics6n,
        math3a, ics46, ics45c, ics33, ics32, ics31, cs161, cs178
    ]
示例#2
0
                    v1=y.get_vertices()[0].get_data(),
                    v2=y.get_vertices()[1].get_data()) for y in self._edges
            ])


if __name__ == "__main__":
    ics6b = Course("ICS6B")
    ics6d = Course("ICS6D")
    math2b = Course("MATH2B")
    ics6n = Course("ICS6N")
    math3a = Course("MATH3A")
    ics46 = Course("ICS46")

    cs161 = Course("CS161")

    cs161.addPrerequisite(ics6b)
    cs161.addPrerequisite(ics6d)
    cs161.addPrerequisite(math2b)
    cs161.addPrerequisiteDisjunction([ics6n, math3a])
    cs161.addPrerequisite(ics46)

    g1 = CourseGraph()
    g1.add_vertex(0, cs161)
    g1.add_vertex(1, ics6b, [0])
    g1.add_vertex(2, ics6d, [0])
    g1.add_vertex(3, math2b, [0])

    g1.add_vertex(4, ics6n)
    g1.add_vertex(5, math3a)
    ics6n_vertex = g1.get_vertex(4)
    math3a_vertex = g1.get_vertex(5)