def draw(): l, e2, a2n, n = create_linked_list([2]) ca2n = Cross(a2n, color=RED) _, e4, a4n2, n2 = create_linked_list( [4], x=e2.x + e2.width + 15, y=e2.y + 40, color=RED ) a24 = Arrow(e2.prox_3, e4.start_1, color=RED) return [ l, e2, a2n, n, ca2n, e4, a4n2, n2, a24 ]
def fail(): l, e2, a2n, n = create_linked_list([2], y=200) sa = SubArrow(e2.prox_2, e2.start_2) circ = Circle((n.x + 40, n.y), "3", color=BLUE) return [ l, e2, sa, circ ]
def ok(): l, e3, a3n, n = create_linked_list([3]) sa = SubArrow(e3.prox_2, e3.start_2) c3 = Cross(e3, color=RED, size=20) circ = Circle((n.x + 40, n.y), "3", color=BLUE) return [ l, e3, sa, c3, circ ]
def draw(): l, e1, a12, e2, a23, e3, a3n, n = create_linked_list([1, 2, 3]) cl = Cross(l.arrow, color=RED) c1 = Cross(e1.middle, color=RED, size=20) l2 = Pointer(e2, 'l', direction='lu.start_0', color=RED) return [ l, e1, a12, e2, a23, e3, a3n, n, cl, c1, l2 ]
def draw(): l, e1, a1_21, e21, a21_22, e22, a22_3, e3, a3n, n = create_linked_list( [1, 2, 2, 3]) p = Pointer(e21, ' ', direction='u.u_2', color=RED) c = Circle((e21.mx + 4, e21.my - 2), "", radius=30, color=RED) return [ l, e1, a1_21, e21, a21_22, e22, a22_3, e3, a3n, n, p, c ]
def draw(): l, e1, a12, e2, a23, e3, a3n, n = create_linked_list(["", "", None, ""]) ellipsis = Label((a23.mx, a23.my), "...") a2e = Arrow(e2.prox_2,(a23.mx - 10, a23.my)) ae3 = Arrow(ellipsis.nearest(e3.start_2), e3.start_2) return [ l, e1, a12, e2, e3, a3n, n, ellipsis, a2e, ae3 ]
def draw(): l, e1, a13, e3, a35, e5, a5n, n = create_linked_list([None, 1, 3, 5]) # Add 0 e0 = LinkedList((e1.x - 40, e1.y + 40, 0), 0, color=RED) a01 = Arrow(e0.prox_1, e1.start_4, color=RED) novo = Pointer(e0, 'novo', direction='ul.start_0', color=RED) return [ l, e1, a13, e3, a35, e5, a5n, n, e0, novo, a01 ]
def draw(): l, e8, a8n, n = create_linked_list([8]) sa = SubArrow(e8.prox_2, e8.start_2) c1 = Cross(sa, color=RED) e5 = LinkedList((n.x + 30, e8.y), 5, color=RED) a85 = Arrow(e8.prox_1, e5.start_1, color=RED) sa2 = SubArrow(e5.prox_3, e8.start_1, color=RED, size_x2=20) return [ l, e8, sa, c1, e5, a85, sa2 ]
def draw(): # Level 0 l, n = create_linked_list([], x=35, y=50) c2 = Circle((100, 60), "2") x = (75, 90) li1 = Line((n.x, 70), x, color=BLUE) li2 = Line(c2.nearest(x), x, color=BLUE) # Level 1 nl, e2, a2n, n2 = create_linked_list([2], x=45, y=120) a2 = Arrow(x, e2.u_3, color=BLUE) novo2 = Pointer(e2, 'novo', direction='lu.start_0') c1 = Circle((150, 140), "1") x = (115, 170) li3 = Line(e2.d_4, x, color=BLUE) li4 = Line(c1.nearest(x), x, color=BLUE) # Level 2 e1 = LinkedList((75, 200), 1) a1 = Arrow(x, e1.u_4, color=BLUE) novo3 = Pointer(e1, 'novo', direction='lu.start_0') a12 = Arrow(e1.prox_1, e2.d_2) c3 = Circle((180, 220), "3") x = (142, 250) li5 = Line(e1.d_4, x, color=BLUE) li6 = Line(c3.nearest(x), x, color=BLUE) # Level 3 e3 = LinkedList((102, 280), 3) a3 = Arrow(x, e3.u_4, color=BLUE) novo4 = Pointer(e3, 'novo', direction='lu.start_0') a31 = Arrow(e3.prox_1, e1.d_2) l3 = Pointer(e3, 'l', direction='l.start_2') return [ n, l, c2, li1, li2, e2, a2, novo2, a2n, n2, c1, li3, li4, e1, a1, novo3, a12, c3, li5, li6, e3, a3, novo4, a31, l3 ]
def search(): l, e1, a12, e2, a2n, n = create_linked_list([1, 2]) sa = SubArrow(e2.prox_2, e1.start_2) ant1 = Pointer(e1, 'ant', direction='d.d_2', color=RED, dist=25) p1 = Pointer(e1, 'p', direction='u.u_2', color=RED) ant2 = Pointer(e2, 'ant', direction='d.d_2', color=RED, dist=25) p2 = Pointer(e2, 'p', direction='u.u_2', color=RED) circ = Circle((n.x + 40, n.y), "1", color=BLUE) cant1 = Cross(ant1.label, color=BLUE) cp2 = Cross(p2.label, color=RED) return [ l, e1, a12, e2, sa, circ, ant1, ant2, p1, p2, cant1, cp2 ]
def draw(): l, e1, a12, e2, a23, e3, a3n, n = create_linked_list([1, 2, 3]) ant = Pointer(e1, 'ant', direction='d.d_2', color=RED) p1 = Pointer(e1, 'p', direction='u.u_2', color=RED) c1 = Cross(p1.arrow, color=RED) c2 = Cross(e2.middle, color=RED, size=20) c3 = Cross(a12, color=RED) p2 = Pointer(e2, 'p', direction='u.u_2', color=RED) sa = SubArrow(e1.prox_3, e3.start_3, color=RED) lab = Label((sa.mx, sa.my+20), "ant->prox = p->prox", color=RED) return [ l, e1, a12, e2, a23, e3, a3n, n, c1, c2, c3, p1, p2, ant, sa, lab ]
def draw(): l, e0, a03, e3, a32, e2, a2n, n = create_linked_list([0, 3, 2]) sa = SubArrow(e2.prox_2, e0.start_2) ant0 = Pointer(e0, "ant", direction="d.d_2", color=RED, dist=25) p0 = Pointer(e0, "p", direction="u.u_2", color=RED) ant3 = Pointer(e3, "ant", direction="d.d_2", color=RED, dist=25) p3 = Pointer(e3, "p", direction="u.u_2", color=RED) ant2 = Pointer(e2, "ant", direction="d.d_2", color=RED, dist=25) p2 = Pointer(e2, "p", direction="u.u_2", color=RED) circ = Circle((n.x + 40, n.y), "1", color=BLUE) cant0 = Cross(ant0.label, color=RED) cant3 = Cross(ant3.label, color=RED) cp3 = Cross(p3.label, color=RED) cp2 = Cross(p2.label, color=RED) c = Cross((a03.mx, a03.my - 10), size=10, color=RED) return [l, e0, a03, e3, a32, e2, sa, circ, ant0, ant3, ant2, p0, p3, p2, cant0, cant3, cp3, cp2, c]
def draw(): l, e2, a24, e4, a4n, n = create_linked_list([None, 2, None, 4]) # Add 0 cl = Cross(l, color=RED) e0 = LinkedList((e2.x - 40, e2.y + 40, 0), 0, color=RED) a02 = Arrow(e0.prox_1, e2.start_4, color=RED) l0 = Pointer(e0, 'l', direction='ul.start_0', color=RED) # Add 3 ca24 = Cross(a24, color=BLUE) e3 = LinkedList((e4.x - 60, e4.y + 40, 0), 3, color=BLUE) a23 = Arrow(e2.prox_3, e3.start_0, color=BLUE) a34 = Arrow(e3.prox_1, e4.start_4, color=BLUE) ant = Pointer(e2, 'ant', direction='u.u_2', color=BLUE) pp = Pointer(e4, 'p', direction='u.u_2', color=BLUE) novo = Pointer(e3, 'novo', direction='d.d_2', color=BLUE) return [ l, e2, a24, e4, a4n, n, cl, e0, a02, l0, ca24, e3, a23, a34, ant, pp, novo ]
def draw(): return create_linked_list([])
def draw(): return create_linked_list([1, 2, 3])