diff --git a/graphics/execution/recursive.typ b/graphics/execution/recursive.typ new file mode 100644 index 0000000..cf15974 --- /dev/null +++ b/graphics/execution/recursive.typ @@ -0,0 +1,56 @@ +#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge +#import fletcher.shapes: pill + +#diagram( + spacing: (-3mm, 8mm), // wide columns, narrow rows + node-stroke: 1pt, // outline node shapes + edge-stroke: 1pt, // make lines thicker + mark-scale: 60%, // make arrowheads smaller + node((0,0), [Start], name: ), + node((-4, 1), [u1], name: ), + node((4, 1), [u2], name: ), + + node((-6, 2), [u11], name: ), + node((-2, 2), [u12], name: ), + node((2, 2), [u21], name: ), + node((6, 2), [u22], name: ), + + node((-7, 3), [u111], name: ), + node((-5, 3), [u112], name: ), + node((-3, 3), [u121], name: ), + node((-1, 3), [u122], name: ), + node((1, 3), [u211], name: ), + node((3, 3), [u212], name: ), + node((5, 3), [u221], name: ), + node((7, 3), [u222], name: ), + + node((-20mm, 33mm), [n1], shape: pill, name: ), + node((-20mm, 18.5mm), [n2], shape: pill, name: ), + node((-20mm, 4mm), [n3], shape: pill, name: ), + + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + + edge(, , "->"), + edge(, , "->"), + + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + edge(, , "->"), + + node(enclose: (, ), stroke: aqua, fill: aqua.lighten(90%), name: ), + node(enclose: (, ), stroke: teal, fill: teal.lighten(90%), name: ), + node(enclose: (, ), stroke: eastern, fill: eastern.lighten(90%), name: ) + +)