# Linked List (insert) ## insert at head empty ```graphviz digraph InsertAtHeadEmpty { rankdir=LR; node [shape=record, style=filled, fillcolor=lightgray]; h [shape=plaintext, label="h"]; null [label="null", shape=plaintext]; // Before h -> null [label="before"]; // Define node p (new node) p [label="{ (new)p | <link> link }"]; // After h -> p [style=dashed, color=red, label="after"]; p:link -> null [style=dashed, color=red]; } ``` ## insert at head ```graphviz digraph InsertAtHead { rankdir=LR; node [shape=record, style=filled, fillcolor=lightgray]; h [shape=plaintext, label="h"]; A [label="{ A | <link> link }"]; B [label="{ B | <link> link }"]; C [label="{ C | <link> link }"]; null [label="null", shape=plaintext]; // Before insertion h -> A [label="before"]; A:link -> B; B:link -> C; C:link -> null; // Define node p (new node) p [label="{ (new)p | <link> link }"]; // After insertion p:link -> A [style=dashed, color=red]; h -> p [style=dashed, color=red label="after"]; } ``` ## insert tail ```graphviz digraph InsertAtTail { rankdir=LR; node [shape=record, style=filled, fillcolor=lightgray]; h [shape=plaintext, label="h"]; A [label="{ A | <link> link }"]; B [label="{ B | <link> link }"]; C [label="{ C | <link> link }"]; null [label="null", shape=plaintext]; // before h -> A; A:link -> B; B:link -> C; C:link -> null [label="before"]; // Define node p (new node) p [label="{ (new)p | <link> link }"]; p:link -> null[style=dashed, color=red]; C:link -> p [style=dashed, color=red, label="after"]; } ``` ## insert middle ```graphviz digraph InsertAtMiddle { rankdir=LR; node [shape=record, style=filled, fillcolor=lightgray]; h [shape=plaintext, label="h"]; A [label="{ A | <link> link }"]; B [label="{ B | <link> link }"]; C [label="{ C | <link> link }"]; null [label="null", shape=plaintext]; // before h -> A; A:link -> B; B:link -> C [label="before"]; C:link -> null; // workning poinger t [label="t", shape=plaintext]; t -> B [style=dahsed, color=red]; // after p [label="{ (new)p | <link> link }"]; p:link -> C [style=dashed, color=red]; B:link -> p [style=dashed, label="after" color=red ]; } ```