From f0d9ffcc86d15c3688a1f55a4b22cf6363ea803a Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Tue, 23 Nov 2021 22:19:03 +0100 Subject: [PATCH] added linked list --- slides/cours_9.md | 156 ++++++- slides/figs/Singly-linked-list.svg | 638 +++++++++++++++++++++++++++++ 2 files changed, 793 insertions(+), 1 deletion(-) create mode 100644 slides/figs/Singly-linked-list.svg diff --git a/slides/cours_9.md b/slides/cours_9.md index a693fa9..5609e7a 100644 --- a/slides/cours_9.md +++ b/slides/cours_9.md @@ -1,5 +1,5 @@ --- -title: "Backtracking et piles" +title: "Piles et files d'attente" date: "2021-11-25" patat: eval: @@ -148,6 +148,10 @@ int stack_peek(stack *s) { } ``` +## Quelle est la complexité de ces opérations? + +. . . + ## Voyez-vous des problèmes potentiels avec cette implémentation? . . . @@ -502,3 +506,153 @@ char *infix_to_postfix(char* infix) { // init and alloc stack and postfix return postfix; } ``` + +# La liste chaînée et pile (1/N) + +## Structure de données + +* Chaque élément de la liste contient: + 1. une valeur, + 2. un pointeur vers le prochain élément. +* La pile est un pointeur vers le premier élément. + +{width=80%} + +# La liste chaînée et pile (2/N) + +## Une pile-liste-chaînée + +```C +typedef struct _element { + int data; + struct _element *next; +} element; +typedef element* stack; +``` + +## Fonctionnalités? + +. . . + +```C +stack stack_create(); // return NULL; +void stack_destroy(stack *s); +void stack_push(stack *s, int val); +int stack_pop(stack *s); +int stack_peek(stack s); +bool stack_is_empty(stack s); // reutrn NULL == stack; +``` + +# La liste chaînée et pile (3/N) + +## Empiler? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Empiler? (le code ensemble) + +. . . + +```C +void stack_push(stack *s, int val) { + element *elem = malloc(sizeof(*elem)); + elem->data = val; + elem->next = *stack; + stack = elem; +} +``` + +# La liste chaînée et pile (4/N) + +## Jeter un oeil? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Jeter un oeil? (le code ensemble) + +. . . + +```C +int stack_peek(stack s) { + return s->data; +} +``` + +# La liste chaînée et pile (5/N) + +## Dépiler? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Dépiler? (le code ensemble) + +. . . + +```C +int stack_pop(stack *s) { + int val = stack_peek(*s); + element *tmp = *s; + *s = (*s)->next; + free(tmp); + return val; +} +``` + +# La liste chaînée et pile (6/N) + +## Détruire? (faire un dessin) + +. . . + +```C + + + + + + + +``` + +## Détruire? (le code ensemble) + +. . . + +```C +void stack_destroy(stack *s) { + while (!stack_is_empty(*s)) { + int val = stack_pop(s); + } +} +``` + diff --git a/slides/figs/Singly-linked-list.svg b/slides/figs/Singly-linked-list.svg new file mode 100644 index 0000000..dae4ee1 --- /dev/null +++ b/slides/figs/Singly-linked-list.svg @@ -0,0 +1,638 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="271.77063mm" + height="108.99983mm" + viewBox="0 0 271.77063 108.99983" + version="1.1" + id="svg92" + sodipodi:docname="Singly-linked-list.svg" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview94" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.16191253" + inkscape:cx="382.92281" + inkscape:cy="867.75249" + inkscape:window-width="944" + inkscape:window-height="1022" + inkscape:window-x="962" + inkscape:window-y="44" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs89"> + <marker + style="overflow:visible" + id="DotM" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lstart" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:isstock="true"> + <path + transform="matrix(0.8,0,0,0.8,10,0)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path7195" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-5" /> + </marker> + <marker + style="overflow:visible" + id="DotM-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-9" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-7-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-5-6" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-1" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-4" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-5" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-1-3" /> + </marker> + <marker + style="overflow:visible" + id="DotM-0-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-9-1" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-3-0" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-6-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-7-0-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-5-6-2" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-4-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-5-7" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-0-6" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-1-3-4" /> + </marker> + <marker + style="overflow:visible" + id="DotM-8-3" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM" + inkscape:isstock="true"> + <path + transform="matrix(0.4,0,0,0.4,2.96,0.4)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z" + id="path7259-97-6" /> + </marker> + <marker + style="overflow:visible" + id="Arrow2Lend-36-7" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend" + inkscape:isstock="true"> + <path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round" + id="path7216-1-5" /> + </marker> + </defs> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-0.36967225,-2.5050807)"> + <g + id="g3580"> + <g + id="g24207"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="36.682896" + y="38.202869" + id="text6474-3"><tspan + sodipodi:role="line" + id="tspan6472-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="36.682896" + y="38.202869">0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="-0.73103225" + y="10.545908" + id="text17747"><tspan + sodipodi:role="line" + id="tspan17745" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="-0.73103225" + y="10.545908">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="M 12.729453,13.750898 C 12.330364,25.260185 17.227241,33.50031 33.621646,34.643091" + id="path18808" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3643" + transform="translate(-8.1840905,2.5045546)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29" + width="31.621361" + height="15.888521" + x="140.73814" + y="23.853914" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 164.53454,24.18415 V 39.63821" + id="path1501-3" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="145.9039" + y="35.655811" + id="text6474-19"><tspan + sodipodi:role="line" + id="tspan6472-4" + style="stroke-width:0.264583" + x="145.9039" + y="35.655811">21</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8);marker-end:url(#Arrow2Lend-36)" + d="m 168.072,31.56383 h 15.84399" + id="path7136-78" /> + <g + id="g43819" + transform="translate(135.35753,-128.52638)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-2" + width="31.621361" + height="15.888521" + x="49.971462" + y="152.42796" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 73.767859,152.75821 v 15.45406" + id="path1501-6" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="55.137226" + y="164.22986" + id="text6474-1"><tspan + sodipodi:role="line" + id="tspan6472-8" + style="stroke-width:0.264583" + x="55.137226" + y="164.22986">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-0);marker-end:url(#Arrow2Lend-3)" + d="M 77.305319,160.13789 H 93.149313" + id="path7136-7" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="95.359497" + y="164.22469" + id="text6474-3-5-9"><tspan + sodipodi:role="line" + id="tspan6472-6-6-2" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="95.359497" + y="164.22469">0</tspan></text> + </g> + <g + id="g24758-0" + transform="translate(97.719115,-51.525442)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2-2"><tspan + sodipodi:role="line" + id="tspan17745-9-3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-0)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1-7" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3624" + transform="translate(-7.3070295,-13.303108)"> + <g + id="g702" + transform="translate(-1.5543969,-0.09757996)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29-3" + width="31.621361" + height="15.888521" + x="140.7131" + y="88.780045" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 164.50949,89.110281 V 104.56434" + id="path1501-3-5" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="145.87886" + y="100.58194" + id="text6474-19-6"><tspan + sodipodi:role="line" + id="tspan6472-4-2" + style="stroke-width:0.264583" + x="145.87886" + y="100.58194">12</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8-3);marker-end:url(#Arrow2Lend-36-7)" + d="m 168.04695,96.489961 h 15.84399" + id="path7136-78-9" /> + </g> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-29-6" + width="31.621361" + height="15.888521" + x="183.78406" + y="88.682465" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 207.58045,89.0127 v 15.45406" + id="path1501-3-1" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="188.94981" + y="100.48436" + id="text6474-19-5"><tspan + sodipodi:role="line" + id="tspan6472-4-5" + style="stroke-width:0.264583" + x="188.94981" + y="100.48436">21</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-8-4);marker-end:url(#Arrow2Lend-36-0)" + d="M 211.11791,96.39238 H 226.9619" + id="path7136-78-4" /> + <g + id="g43819-7" + transform="translate(178.40344,-63.69783)"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140-2-6" + width="31.621361" + height="15.888521" + x="49.971462" + y="152.42796" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 73.767859,152.75821 v 15.45406" + id="path1501-6-5" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="55.137226" + y="164.22986" + id="text6474-1-6"><tspan + sodipodi:role="line" + id="tspan6472-8-9" + style="stroke-width:0.264583" + x="55.137226" + y="164.22986">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM-0-6);marker-end:url(#Arrow2Lend-3-0)" + d="M 77.305319,160.13789 H 93.149313" + id="path7136-7-3" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="95.359497" + y="164.22469" + id="text6474-3-5-9-7"><tspan + sodipodi:role="line" + id="tspan6472-6-6-2-4" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="95.359497" + y="164.22469">0</tspan></text> + </g> + <g + id="g24758-0-5" + transform="translate(96.842054,13.303108)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2-2-2"><tspan + sodipodi:role="line" + id="tspan17745-9-3-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7-0-3)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1-7-4" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + id="g3599"> + <rect + style="fill:none;stroke:#000000;stroke-width:1;stroke-opacity:1" + id="rect140" + width="31.621361" + height="15.888521" + x="35.965668" + y="75.427032" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 59.762066,75.757277 V 91.211331" + id="path1501" /> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="41.131432" + y="87.228928" + id="text6474"><tspan + sodipodi:role="line" + id="tspan6472" + style="stroke-width:0.264583" + x="41.131432" + y="87.228928">17</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#Arrow2Lend)" + d="M 63.299526,83.136951 H 79.14352" + id="path7136" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="81.353706" + y="87.223755" + id="text6474-3-5"><tspan + sodipodi:role="line" + id="tspan6472-6-6" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="81.353706" + y="87.223755">0</tspan></text> + <g + id="g24758" + transform="translate(-7.0295076)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.264583" + x="6.4283442" + y="59.566795" + id="text17747-2"><tspan + sodipodi:role="line" + id="tspan17745-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583" + x="6.4283442" + y="59.566795">stack</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend-7)" + d="M 19.888829,62.771786 C 19.48974,74.281073 24.386617,82.521198 40.781022,83.663979" + id="path18808-1" + sodipodi:nodetypes="cc" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.293233" + x="35.846004" + y="98.283569" + id="text26870"><tspan + sodipodi:role="line" + id="tspan26868" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.293233" + x="35.846004" + y="98.283569">data</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;stroke-width:0.293233" + x="64.074135" + y="71.651909" + id="text26870-2"><tspan + sodipodi:role="line" + id="tspan26868-7" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.86468px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.293233" + x="64.074135" + y="71.651909">next</tspan></text> + <text + xml:space="preserve" + style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583" + x="35.886299" + y="111.35505" + id="text42316"><tspan + sodipodi:role="line" + id="tspan42314" + style="stroke-width:0.264583" + x="35.886299" + y="111.35505">element</tspan></text> + </g> + </g> +</svg> -- GitLab