NLinker icon

RB tree insert 1..6 (debug log)

NLinker | PRO | 07/09/17 06:29:08 PM UTC | 0 ⭐ | 939 👁️ | Never ⏰ | []
Haskell |

2.54 KB

|

None

|

0 👍

/

0 👎

λ> test
>>> insert x t = T B [ins 1 E]
E 1 E
>>> insert x t = T B [ins 2 (T B E 1 E)]
  [ins 2 E]
  [balance B E 1 (T R E 2 E)]
     => (T B E 1 (T R E 2 E))
E 1 (T R E 2 E)
>>> insert x t = T B [ins 3 (T B E 1 (T R E 2 E))]
  [ins 3 (T R E 2 E)]
    [ins 3 E]
    [balance R E 2 (T R E 3 E)]
       => (T R E 2 (T R E 3 E))
  [balance B E 1 (T R E 2 (T R E 3 E))]
     => (T R (T B E 1 E) 2 (T B E 3 E))
(T B E 1 E) 2 (T B E 3 E)
>>> insert x t = T B [ins 4 (T B (T B E 1 E) 2 (T B E 3 E))]
  [ins 4 (T B E 3 E)]
    [ins 4 E]
    [balance B E 3 (T R E 4 E)]
       => (T B E 3 (T R E 4 E))
  [balance B (T B E 1 E) 2 (T B E 3 (T R E 4 E))]
     => (T B (T B E 1 E) 2 (T B E 3 (T R E 4 E)))
(T B E 1 E) 2 (T B E 3 (T R E 4 E))
>>> insert x t = T B [ins 5 (T B (T B E 1 E) 2 (T B E 3 (T R E 4 E)))]
  [ins 5 (T B E 3 (T R E 4 E))]
    [ins 5 (T R E 4 E)]
      [ins 5 E]
      [balance R E 4 (T R E 5 E)]
         => (T R E 4 (T R E 5 E))
    [balance B E 3 (T R E 4 (T R E 5 E))]
       => (T R (T B E 3 E) 4 (T B E 5 E))
  [balance B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 E))]
     => (T B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 E)))
(T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 E))
>>> insert x t = T B [ins 6 (T B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 E)))]
  [ins 6 (T R (T B E 3 E) 4 (T B E 5 E))]
    [ins 6 (T B E 5 E)]
      [ins 6 E]
      [balance B E 5 (T R E 6 E)]
         => (T B E 5 (T R E 6 E))
    [balance R (T B E 3 E) 4 (T B E 5 (T R E 6 E))]
       => (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E)))
  [balance B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E)))]
     => (T B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E))))
(T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E)))
>>> insert x t = T B [ins 7 (T B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E))))]
  [ins 7 (T R (T B E 3 E) 4 (T B E 5 (T R E 6 E)))]
    [ins 7 (T B E 5 (T R E 6 E))]
      [ins 7 (T R E 6 E)]
        [ins 7 E]
        [balance R E 6 (T R E 7 E)]
           => (T R E 6 (T R E 7 E))
      [balance B E 5 (T R E 6 (T R E 7 E))]
         => (T R (T B E 5 E) 6 (T B E 7 E))
    [balance R (T B E 3 E) 4 (T R (T B E 5 E) 6 (T B E 7 E))]
       => (T R (T B E 3 E) 4 (T R (T B E 5 E) 6 (T B E 7 E)))
  [balance B (T B E 1 E) 2 (T R (T B E 3 E) 4 (T R (T B E 5 E) 6 (T B E 7 E)))]
     => (T R (T B (T B E 1 E) 2 (T B E 3 E)) 4 (T B (T B E 5 E) 6 (T B E 7 E)))
(T B (T B E 1 E) 2 (T B E 3 E)) 4 (T B (T B E 5 E) 6 (T B E 7 E))
>>> final = T B (T B (T B E 1 E) 2 (T B E 3 E)) 4 (T B (T B E 5 E) 6 (T B E 7 E))
λ>

Comments