- remove logging and panics from avl tree

pull/51/head
Emir Pasic 7 years ago
parent dbba07eb57
commit 6f20e11a99

@ -9,9 +9,6 @@ package avltree
import (
"fmt"
"io/ioutil"
"log"
"github.com/emirpasic/gods/trees"
"github.com/emirpasic/gods/utils"
)
@ -20,8 +17,6 @@ func assertTreeImplementation() {
var _ trees.Tree = new(Tree)
}
var dbgLog = log.New(ioutil.Discard, "avltree: ", log.LstdFlags)
// Tree holds elements of the AVL tree.
type Tree struct {
Root *Node
@ -304,23 +299,17 @@ func removeFix(c int8, t **Node) bool {
}
func singlerot(c int8, s *Node) *Node {
dbgLog.Printf("singlerot: enter %p:%v %d\n", s, s, c)
s.b = 0
s = rotate(c, s)
s.b = 0
dbgLog.Printf("singlerot: exit %p:%v\n", s, s)
return s
}
func doublerot(c int8, s *Node) *Node {
dbgLog.Printf("doublerot: enter %p:%v %d\n", s, s, c)
a := (c + 1) / 2
r := s.c[a]
s.c[a] = rotate(-c, s.c[a])
p := rotate(c, s)
if r.p != p || s.p != p {
panic("doublerot: bad parents")
}
switch {
default:
@ -335,12 +324,10 @@ func doublerot(c int8, s *Node) *Node {
}
p.b = 0
dbgLog.Printf("doublerot: exit %p:%v\n", s, s)
return p
}
func rotate(c int8, s *Node) *Node {
dbgLog.Printf("rotate: enter %p:%v %d\n", s, s, c)
a := (c + 1) / 2
r := s.c[a]
s.c[a] = r.c[a^1]
@ -350,7 +337,6 @@ func rotate(c int8, s *Node) *Node {
r.c[a^1] = s
r.p = s.p
s.p = r
dbgLog.Printf("rotate: exit %p:%v\n", r, r)
return r
}

Loading…
Cancel
Save