From 780e98bfee7aa91fe92aee6192cb3bf22410d0b1 Mon Sep 17 00:00:00 2001 From: "paul-anton.engel@informatik.hs-fulda.de" Date: Tue, 16 Jan 2024 15:28:07 +0100 Subject: [PATCH] =?UTF-8?q?Paul:=20=C3=9Cberarbeitung=20im=20SLZ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Uebung08/Paul/Main.java | 21 ++- Uebung08/Paul/RBTree.java | 339 ++++++++++++++++++++++++++++++++------ bin/Main.class | Bin 1327 -> 1692 bytes bin/RBTree$Node.class | Bin 678 -> 703 bytes bin/RBTree.class | Bin 5205 -> 7027 bytes output.svg | Bin 37472 -> 1154 bytes output_step_0.dot | 10 +- output_step_1.dot | 14 +- output_step_10.dot | 50 +----- output_step_11.dot | 54 +----- output_step_12.dot | 54 +----- output_step_13.dot | 58 +------ output_step_14.dot | 62 +------ output_step_15.dot | 113 ++++++------- output_step_2.dot | 18 +- output_step_3.dot | 22 +-- output_step_4.dot | 26 +-- output_step_5.dot | 30 +--- output_step_6.dot | 34 +--- output_step_7.dot | 38 +---- output_step_8.dot | 42 +---- output_step_9.dot | 46 +----- 22 files changed, 382 insertions(+), 649 deletions(-) diff --git a/Uebung08/Paul/Main.java b/Uebung08/Paul/Main.java index c5b0417..ff22be3 100644 --- a/Uebung08/Paul/Main.java +++ b/Uebung08/Paul/Main.java @@ -1,12 +1,22 @@ -import java.util.Random; +import java.util.*; public class Main { public static void main(String[] args) { - RBTree rbTree = new RBTree<>(); + Random random = new Random(); + RBTree rbTree = new RBTree<>(); + ArrayList numbers = new ArrayList<>(); + + // ein eingebauter Mechanismus, der sicherstellt, dass eine Zahl nicht 2-mal vorkommt, sonst würde der Baum nicht funktionieren + // Füllen der Liste mit Zahlen + for (int j = 1; j <= 100; j++) { + numbers.add(j); + } + //Collections.shuffle(numbers); // Liste mischen + + for (int i = 0; i < 15; i++) { + int randomValue = numbers.get(i); - for (int i = 0; i <= 15; i++) { - int randomValue = random.nextInt(100); IntComparable key = new IntComparable(randomValue); // Füge das Element ein und aktualisiere die DOT-Datei nach jedem Schritt @@ -18,5 +28,4 @@ public class Main { // dot -Tsvg output_step_1.dot > output_step_1.svg // ... } -} - +} diff --git a/Uebung08/Paul/RBTree.java b/Uebung08/Paul/RBTree.java index 47b84f0..039b24a 100644 --- a/Uebung08/Paul/RBTree.java +++ b/Uebung08/Paul/RBTree.java @@ -11,7 +11,7 @@ class RBTree> { private class Node { T key; - Node left, right; + Node left, right, parent; // Elternknoten hinzugefügt boolean color; Node(T key, boolean color) { @@ -22,38 +22,142 @@ class RBTree> { private Node root; + private Node getUncle(Node parent) { + Node grandparent = parent.parent; + + if (grandparent.left == parent) { + return grandparent.right; // right is the uncle + + } else if (grandparent.right == parent) { + return grandparent.left; // left is the uncle + + } else { + throw new IllegalStateException("Parent is not a child of its grandparent"); + } + } + public void insert(T key) { - root = insert(root, key); + root = insert(root, null, key); // Parent für die Wurzel ist null root.color = BLACK; // Ensure the root is always black } - private Node insert(Node root, T key) { - if (root == null) { - return new Node(key, RED); // New nodes are always red - } + private Node insert(Node root, Node parent, T key) { + Node node = root; + // Node parent = null; - int cmp = key.compareTo(root.key); - if (cmp < 0) { - root.left = insert(root.left, key); - } else if (cmp > 0) { - root.right = insert(root.right, key); + // Traverse the tree to the left or right depending on the key + while (node != null) { + parent = node; + if (key.compareTo(node.key) < 0) { + node = node.left; + } else if (key.compareTo(node.key) > 0) { + node = node.right; + } else { + throw new IllegalArgumentException("BST already contains a node with key " + key); + } + } + // Insert new node + Node newNode = new Node(key, RED); + if (parent == null) { + root = newNode; + } else if (key.compareTo(parent.key) < 0) { + parent.left = newNode; } else { - // Duplicate key, do not insert - return root; + parent.right = newNode; + } + newNode.parent = parent; + fixColorafterInsert(newNode); + return newNode; + } + + /* + * Fix any Red-Black tree violations + * if (isRed(root.right) && !isRed(root.left)) { + * root = rotateLeft(root); + * } + * if (isRed(root.left) && isRed(root.left.left)) { + * root = rotateRight(root); + * } + * if (isRed(root.left) && isRed(root.right)) { + * flipColors(root); + * } + */ + + private void fixColorafterInsert(Node node) { + Node parent = node.parent; + + // Case 1: no root, add node as new root, root is always black + if (parent == null) { + node.color = false; + return; } - // Fix any Red-Black tree violations - if (isRed(root.right) && !isRed(root.left)) { - root = rotateLeft(root); + // Parent is black --> nothing to do + if (parent.color == false) { // Abbildung S.312, aber beide Knoten sind schon schwarz gefärbt + return; } - if (isRed(root.left) && isRed(root.left.left)) { - root = rotateRight(root); + + // From here on, parent(vater) is red + Node grandparent = parent.parent; + + Node uncle = getUncle(parent); // Get the uncle (maybe nil, in which case its color is BLACK) + + // Case 3 (parent uncle red, Abbildung S.313, 314): recolor parent, grandparent + // and uncle + if (uncle != null && uncle.color == true) { + parent.color = false; + uncle.color = false; + grandparent.color = true; + + // Call recursively for grandparent, which is now red. fix recursively + fixColorafterInsert(grandparent); } - if (isRed(root.left) && isRed(root.right)) { - flipColors(root); + + // Parent is left child of grandparent + // Case 4a: Uncle is black(nil is default black) and node is left --> right + // "inner child" of its grandparent + else if (parent == grandparent.left) { + + Node newParent; + + if (node == parent.right) { + newParent = rotateLeft(parent); + parent = newParent; + + // Let "parent" point to the new root node of the rotated sub-tree. + // It will be recolored in the next step, which we're going to fall-through to. + // parent = node; + } + + // Case 5a: Uncle is black and node is left->left "outer child" of its + // grandparent + rotateRight(grandparent); + + // Recolor original parent and grandparent + parent.color = false; + grandparent.color = true; } - return root; // Return the updated root + // Parent is right child of grandparent + else if (parent == grandparent.right) { + // Case 4b: Uncle is black and node is right->left "inner child" of its + // grandparent + if (node == parent.left) { + rotateRight(parent); + + // Let "parent" point to the new root node of the rotated sub-tree. + // It will be recolored in the next step, which we're going to fall-through to. + parent = node; + } + + // Case 5b: Uncle is black and node is right->right "outer child" of its + // grandparent + rotateLeft(grandparent); + + // Recolor original parent and grandparent + parent.color = false; + grandparent.color = true; + } } private boolean isRed(Node node) { @@ -63,39 +167,107 @@ class RBTree> { return node.color == RED; } - private Node rotateLeft(Node h) { - Node x = h.right; - h.right = x.left; - x.left = h; - x.color = h.color; - h.color = RED; - return x; + private Node rotateLeft(Node node) { + Node rightChild = node.right; + Node parent = node.parent; + + node.right = rightChild.left; + if (rightChild.left != null) { + rightChild.left.parent = node; + } + + rightChild.left = node; + node.parent = rightChild; + + rightChild.parent = parent; + if (parent == null) { + root = rightChild; + } else if (node == parent.left) { + parent.left = rightChild; + } else if (node == parent.right) { + parent.right = rightChild; + } else { + throw new IllegalStateException("Node is not a child of its parent"); + } + + if (rightChild != null) { + rightChild.parent = parent; + } + + RootBlack(); + + return rightChild; } - private Node rotateRight(Node h) { - Node x = h.left; - h.left = x.right; - x.right = h; - x.color = h.color; - h.color = RED; - return x; + private Node rotateRight(Node node) { + Node leftChild = node.left; + Node parent = node.parent; + + node.left = leftChild.right; + if (leftChild.right != null) { + leftChild.right.parent = node; + } + + leftChild.right = node; + node.parent = leftChild; + + leftChild.parent = parent; + if (parent == null) { + root = leftChild; + } else if (node == parent.left) { + parent.left = leftChild; + } else if (node == parent.right) { + parent.right = leftChild; + } else { + throw new IllegalStateException("Node is not a child of its parent"); + } + + if (leftChild != null) { + leftChild.parent = parent; + } + + RootBlack(); + + return leftChild; } - private void flipColors(Node h) { - h.color = RED; - h.left.color = BLACK; - h.right.color = BLACK; + private void flipColors(Node node) { + node.color = !node.color; + node.left.color = !node.left.color; + node.right.color = !node.right.color; } - public void printDOTAfterInsert(String filename, T key) { + private void RootBlack() { + root.color = BLACK; + } + + /* + * public void printDOTAfterInsert(String filename, T key) { + * try (FileWriter writer = new FileWriter(filename)) { + * writer.write("digraph G {\n"); + * writer.write("\tnode [style=filled, color=black, shape=circle, width=.6,\n"); + * writer.write("\t\tfontname=Helvetica, fontweight=bold, fontcolor=white,\n"); + * writer.write("\t\tfontsize=24, fixedsize=true];\n"); + * + * root = insert(root, null, key); // Füge das Element ein und aktualisiere den + * Baum + * printDOTRecursive(root, writer); + * + * writer.write("}\n"); + * } catch (IOException e) { + * e.printStackTrace(); + * } + * } + */ + + public void printDOTAfterInsert(String filename, T key) { try (FileWriter writer = new FileWriter(filename)) { writer.write("digraph G {\n"); - writer.write("\tgraph [ratio=.48];\n"); - writer.write("\tnode [style=filled, color=black, shape=circle, width=.6 \n"); - writer.write("\t\tfontname=Helvetica, fontweight=bold, fontcolor=white, \n"); + writer.write("\tnode [style=filled, color=black, shape=circle, width=.6,\n"); + writer.write("\t\tfontname=Helvetica, fontweight=bold, fontcolor=white,\n"); writer.write("\t\tfontsize=24, fixedsize=true];\n"); - root = insert(root, key); // Füge das Element ein und aktualisiere den Baum + // Hier wird der gesamte Baum gezeichnet, nicht nur der neu eingefügte Schlüssel printDOTRecursive(root, writer); writer.write("}\n"); @@ -103,25 +275,27 @@ class RBTree> { e.printStackTrace(); } } - + private void printDOTRecursive(Node node, FileWriter writer) throws IOException { if (node != null) { - String keyString = node.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); // Ersetze ungültige Zeichen - - // Setze Farben basierend auf der Rot-Schwarz-Eigenschaft + String keyString = node.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); String fillColor = (node.color == RED) ? "red" : "black"; - String fontColor = (node.color == RED) ? "white" : "white"; // Ändern Sie dies, wenn Sie schwarzen Text auf rotem Hintergrund möchten + String fontColor = (node.color == RED) ? "white" : "white"; - // Print current node mit Farbinformationen writer.write("\t\"" + keyString + "\" [fillcolor=" + fillColor + ", fontcolor=" + fontColor + "];\n"); + // Print parent link + if (node.parent != null) { + String parentKeyString = node.parent.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); + writer.write("\t\"" + parentKeyString + "\" -> \"" + keyString + "\" [style=dotted];\n"); + } + // Print left child if (node.left != null) { String leftKeyString = node.left.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); writer.write("\t\"" + keyString + "\" -> \"" + leftKeyString + "\";\n"); printDOTRecursive(node.left, writer); } else { - // Füge ein NIL-Blatt für leere linke Zweige hinzu String leftNilKeyString = keyString + "_NIL_L"; writer.write("\t\"" + leftNilKeyString + "\" [shape=plaintext, label=\"NIL\", fontsize=16];\n"); writer.write("\t\"" + keyString + "\" -> \"" + leftNilKeyString + "\";\n"); @@ -133,12 +307,69 @@ class RBTree> { writer.write("\t\"" + keyString + "\" -> \"" + rightKeyString + "\";\n"); printDOTRecursive(node.right, writer); } else { - // Füge ein NIL-Blatt für leere rechte Zweige hinzu String rightNilKeyString = keyString + "_NIL_R"; writer.write("\t\"" + rightNilKeyString + "\" [shape=plaintext, label=\"NIL\", fontsize=16];\n"); writer.write("\t\"" + keyString + "\" -> \"" + rightNilKeyString + "\";\n"); } } - } -} + } + + + /*public void printDOTAfterInsert(String filename, T key) { + try (FileWriter writer = new FileWriter(filename)) { + writer.write("digraph G {\n"); + writer.write("\tnode [style=filled, color=black, shape=circle, width=.6,\n"); + writer.write("\t\tfontname=Helvetica, fontweight=bold, fontcolor=white,\n"); + writer.write("\t\tfontsize=24, fixedsize=true];\n"); + + // Hier wird der gesamte Baum gezeichnet, nicht nur der neu eingefügte Schlüssel + printDOTRecursive(root, writer); + + writer.write("}\n"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void printDOTRecursive(Node node, FileWriter writer) throws IOException { + if (node != null) { + String keyString = node.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); + String fillColor = (node.color == RED) ? "red" : "black"; + String fontColor = (node.color == RED) ? "white" : "white"; + writer.write("\t\"" + keyString + "\" [fillcolor=" + fillColor + ", fontcolor=" + fontColor + "];\n"); + + /* + * Print parent link + * if (node.parent != null) { + * String parentKeyString = + * node.parent.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); + * writer.write("\t\"" + parentKeyString + "\" -> \"" + keyString + + * "\" [style=dotted];\n"); + * } + + + // Print left child + if (node.left != null) { + String leftKeyString = node.left.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); + writer.write("\t\"" + keyString + "\" -> \"" + leftKeyString + "\";\n"); + printDOTRecursive(node.left, writer); + } else { + String leftNilKeyString = keyString + "_NIL_L"; + writer.write("\t\"" + leftNilKeyString + "\" [shape=plaintext, label=\"NIL\", fontsize=16];\n"); + writer.write("\t\"" + keyString + "\" -> \"" + leftNilKeyString + "\";\n"); + } + + // Print right child + if (node.right != null) { + String rightKeyString = node.right.key.toString().replaceAll("[^a-zA-Z0-9]", "_"); + writer.write("\t\"" + keyString + "\" -> \"" + rightKeyString + "\";\n"); + printDOTRecursive(node.right, writer); + } else { + String rightNilKeyString = keyString + "_NIL_R"; + writer.write("\t\"" + rightNilKeyString + "\" [shape=plaintext, label=\"NIL\", fontsize=16];\n"); + writer.write("\t\"" + keyString + "\" -> \"" + rightNilKeyString + "\";\n"); + } + } + */ +} \ No newline at end of file diff --git a/bin/Main.class b/bin/Main.class index 52d53e661b6aa32c14870771f714ab20ef6cff67..5d5b42c4769635446a82282f18059c47031e1ae6 100644 GIT binary patch delta 882 zcmZvaO-~b16o%j1nRd!JjfK)e0qYm&v=piZs!*(aXti3v7AzD$k|`Z)u@o{)NsNoS zaOuX(#swP_6Bi~LH^tDzxYnghe}nNKh-X@@EL_}s?w#|T_q_LH-ix~q@yoCMPXH!x z_l3Ayb*?KrN~oe2OQEz<&TnpraH35>Cxb0Lv!to22$%Vxi^27eoz^tvak99ri}0XL zL=XA|^fI(Jkdjg^gc4<4EvTA=WAHHuJ4&gdE<9lH$O(V)FIH`FQB&!Jgp)YMz$y7W zgIjKKh0sE7U0u_o{#BFfmoR`c#1&NC_1bC#;De@s4Hua=9H}^ z)3AVXW5qITTR=*{E#tYxZx18Q@KR11?>L|F-SUK=x8t_4$_=m;<0%(ltHxWdT4ht< zA<*lJbvUzo=t$P#qUfHh!$Yxqo{#Wv;2d)EAK|Ux`0_KJxp`;)^}$ch%mgV@!|BiH zso`wITE}44ZQaArge~ai_i+yJ+G-eWRvmqH@a+RN;~~->hE%0sgPj~WY43&v9~_V= zhS83T=s+BuNTCb&>Hd(iN2nrAEIFq9I7K@Y`hlZhq>;rWF2O=dDa3FY9D1pC3e(hb z3?rCnoZ^(9rIQt<6t%m8t7IZhQXVR8id<`nTqltP<-FhzsJ~Uf4RR~MCBVY~Ns6vcmU=E1-?V<%9=R;f~p7F&xSwJIvsq9!DCQyWbeCJtp5Ncl)ZjXO5} z17=({u1s7SH*Hc9DDv!sz2A>+tZnWF zfsIGpVp8F~@!$G|y}%!`B=UUbMZt4O!}W>D_5xBcGBM)*hNVjgo2IWC9V2qtQya}=@a z_^_~UWTUE~P?hkf@#?huyytH>*ZuD1$S8bmE=BKg-=Y|PH1lSb2jLI%lfE0{QCQPC zy{5>8Lo*%z)|NY0?R1)ZU5h7*ng7+G&oP>)99SCQZ5@)R4oFH&t(&DUv;&)C=l=v(0UKM6bW<93NQ>Oj_Upieb diff --git a/bin/RBTree$Node.class b/bin/RBTree$Node.class index 64a9b557d77f99c3955a730a89fceb38e3702667..b0a8196b554c3f0f0d677d320745f4919eaa2e50 100644 GIT binary patch delta 286 zcmXAjJx&8b423^u*o6$Eut}DG0)d2(474;HfFsZ&L5m_d05?F2R)`zWQ>>5>f}TSm z-Ymt8?eE#oe$Bo!|MUCt1zZpp{wdGr*Y~$~i|3oT87Sy_9NU2&JBFLiuG$!Tfs8z5 z`+*K?)yN*~qEaPd-Mto;0 zp4IHeLCxSz+;Py%rJgQrIdtUFr(`HHl&)D0@rqn3)q%21Fs*kSDG$x^q^(GEjKo@u QIaW+38xy7?vxZOp0AeT_M*si- delta 244 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 Dq6hIQ literal 5205 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 ZZ@1V&wUWWzOi$C#=`!6(ucz12e*p%3(#!w= diff --git a/output_step_0.dot b/output_step_0.dot index 2ffc6d5..574030d 100644 --- a/output_step_0.dot +++ b/output_step_0.dot @@ -1,11 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "56" -> "56_NIL_L"; - "56_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "56" -> "56_NIL_R"; } diff --git a/output_step_1.dot b/output_step_1.dot index 45d7147..574030d 100644 --- a/output_step_1.dot +++ b/output_step_1.dot @@ -1,15 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "33"; - "33" [fillcolor=red, fontcolor=white]; - "33_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_L"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "56" -> "56_NIL_R"; } diff --git a/output_step_10.dot b/output_step_10.dot index 0f81282..574030d 100644 --- a/output_step_10.dot +++ b/output_step_10.dot @@ -1,51 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=red, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_L"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; } diff --git a/output_step_11.dot b/output_step_11.dot index df8becb..574030d 100644 --- a/output_step_11.dot +++ b/output_step_11.dot @@ -1,55 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=red, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11" -> "8"; - "8" [fillcolor=red, fontcolor=white]; - "8_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_L"; - "8_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_R"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_L"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; } diff --git a/output_step_12.dot b/output_step_12.dot index df8becb..574030d 100644 --- a/output_step_12.dot +++ b/output_step_12.dot @@ -1,55 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=red, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11" -> "8"; - "8" [fillcolor=red, fontcolor=white]; - "8_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_L"; - "8_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_R"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_L"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; } diff --git a/output_step_13.dot b/output_step_13.dot index 488a727..574030d 100644 --- a/output_step_13.dot +++ b/output_step_13.dot @@ -1,59 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=red, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11" -> "8"; - "8" [fillcolor=red, fontcolor=white]; - "8_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_L"; - "8_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_R"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_L"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "64"; - "64" [fillcolor=black, fontcolor=white]; - "64" -> "63"; - "63" [fillcolor=red, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "64_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "64" -> "64_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; } diff --git a/output_step_14.dot b/output_step_14.dot index 52b6447..574030d 100644 --- a/output_step_14.dot +++ b/output_step_14.dot @@ -1,63 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=red, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11" -> "8"; - "8" [fillcolor=red, fontcolor=white]; - "8_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_L"; - "8_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_R"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19" -> "18"; - "18" [fillcolor=red, fontcolor=white]; - "18_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "18" -> "18_NIL_L"; - "18_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "18" -> "18_NIL_R"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "64"; - "64" [fillcolor=black, fontcolor=white]; - "64" -> "63"; - "63" [fillcolor=red, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "64_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "64" -> "64_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; } diff --git a/output_step_15.dot b/output_step_15.dot index 9b639e1..fea6424 100644 --- a/output_step_15.dot +++ b/output_step_15.dot @@ -1,67 +1,58 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=red, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=black, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11" -> "8"; - "8" [fillcolor=red, fontcolor=white]; - "8_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_L"; - "8_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "8" -> "8_NIL_R"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15" -> "19"; - "19" [fillcolor=black, fontcolor=white]; - "19" -> "18"; - "18" [fillcolor=red, fontcolor=white]; - "18_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "18" -> "18_NIL_L"; - "18_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "18" -> "18_NIL_R"; - "19_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "19" -> "19_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=black, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33" -> "49"; - "49" [fillcolor=black, fontcolor=white]; - "49_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "49" -> "49_NIL_L"; - "49_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "49" -> "49_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "64"; - "64" [fillcolor=black, fontcolor=white]; - "64" -> "63"; - "63" [fillcolor=red, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "64_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "64" -> "64_NIL_R"; - "69" -> "98"; + "75" [fillcolor=black, fontcolor=white]; + "75" -> "73"; + "73" [fillcolor=red, fontcolor=white]; + "73" -> "51"; + "51" [fillcolor=black, fontcolor=white]; + "51" -> "39"; + "39" [fillcolor=black, fontcolor=white]; + "39" -> "38"; + "38" [fillcolor=red, fontcolor=white]; + "38" -> "34"; + "34" [fillcolor=black, fontcolor=white]; + "34" -> "28"; + "28" [fillcolor=black, fontcolor=white]; + "28" -> "13"; + "13" [fillcolor=red, fontcolor=white]; + "13_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; + "13" -> "13_NIL_L"; + "13_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "13" -> "13_NIL_R"; + "28_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "28" -> "28_NIL_R"; + "34" -> "37"; + "37" [fillcolor=black, fontcolor=white]; + "37_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; + "37" -> "37_NIL_L"; + "37_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "37" -> "37_NIL_R"; + "38_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "38" -> "38_NIL_R"; + "39_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "39" -> "39_NIL_R"; + "51_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "51" -> "51_NIL_R"; + "73_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "73" -> "73_NIL_R"; + "75" -> "77"; + "77" [fillcolor=black, fontcolor=white]; + "77_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; + "77" -> "77_NIL_L"; + "77" -> "80"; + "80" [fillcolor=black, fontcolor=white]; + "80_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; + "80" -> "80_NIL_L"; + "80" -> "98"; "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; + "98" -> "81"; + "81" [fillcolor=black, fontcolor=white]; + "81_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; + "81" -> "81_NIL_L"; + "81_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; + "81" -> "81_NIL_R"; "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; "98" -> "98_NIL_R"; } diff --git a/output_step_2.dot b/output_step_2.dot index 91e649e..574030d 100644 --- a/output_step_2.dot +++ b/output_step_2.dot @@ -1,19 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_L"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; } diff --git a/output_step_3.dot b/output_step_3.dot index 96f7471..574030d 100644 --- a/output_step_3.dot +++ b/output_step_3.dot @@ -1,23 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "25"; - "25" [fillcolor=red, fontcolor=white]; - "25_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "25" -> "25_NIL_L"; - "25_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "25" -> "25_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; } diff --git a/output_step_4.dot b/output_step_4.dot index 8b0be62..574030d 100644 --- a/output_step_4.dot +++ b/output_step_4.dot @@ -1,27 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=red, fontcolor=white]; - "25" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_L"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; } diff --git a/output_step_5.dot b/output_step_5.dot index 6227992..574030d 100644 --- a/output_step_5.dot +++ b/output_step_5.dot @@ -1,31 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=red, fontcolor=white]; - "25" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_L"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "89"; - "89" [fillcolor=black, fontcolor=white]; - "89" -> "63"; - "63" [fillcolor=red, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; } diff --git a/output_step_6.dot b/output_step_6.dot index ec102d9..574030d 100644 --- a/output_step_6.dot +++ b/output_step_6.dot @@ -1,35 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=red, fontcolor=white]; - "25" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "89"; - "89" [fillcolor=black, fontcolor=white]; - "89" -> "63"; - "63" [fillcolor=red, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; } diff --git a/output_step_7.dot b/output_step_7.dot index d0d7112..574030d 100644 --- a/output_step_7.dot +++ b/output_step_7.dot @@ -1,39 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "11"; - "11" [fillcolor=black, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "89"; - "89" [fillcolor=black, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; } diff --git a/output_step_8.dot b/output_step_8.dot index 9b7826f..574030d 100644 --- a/output_step_8.dot +++ b/output_step_8.dot @@ -1,43 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=black, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=red, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "15" -> "15_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "89"; - "89" [fillcolor=black, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; } diff --git a/output_step_9.dot b/output_step_9.dot index a20f5e0..574030d 100644 --- a/output_step_9.dot +++ b/output_step_9.dot @@ -1,47 +1,5 @@ digraph G { - graph [ratio=.48]; - node [style=filled, color=black, shape=circle, width=.6 - fontname=Helvetica, fontweight=bold, fontcolor=white, + node [style=filled, color=black, shape=circle, width=.6, + fontname=Helvetica, fontweight=bold, fontcolor=white, fontsize=24, fixedsize=true]; - "56" [fillcolor=red, fontcolor=white]; - "56" -> "25"; - "25" [fillcolor=black, fontcolor=white]; - "25" -> "15"; - "15" [fillcolor=black, fontcolor=white]; - "15" -> "11"; - "11" [fillcolor=red, fontcolor=white]; - "11_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_L"; - "11_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "11" -> "11_NIL_R"; - "15_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "15" -> "15_NIL_R"; - "25" -> "33"; - "33" [fillcolor=black, fontcolor=white]; - "33" -> "27"; - "27" [fillcolor=red, fontcolor=white]; - "27_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_L"; - "27_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "27" -> "27_NIL_R"; - "33_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "33" -> "33_NIL_R"; - "56" -> "69"; - "69" [fillcolor=black, fontcolor=white]; - "69" -> "63"; - "63" [fillcolor=black, fontcolor=white]; - "63_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_L"; - "63_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "63" -> "63_NIL_R"; - "69" -> "98"; - "98" [fillcolor=black, fontcolor=white]; - "98" -> "89"; - "89" [fillcolor=red, fontcolor=white]; - "89_NIL_L" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_L"; - "89_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "89" -> "89_NIL_R"; - "98_NIL_R" [shape=plaintext, label="NIL", fontsize=16]; - "98" -> "98_NIL_R"; }