- remove logging and panics from avl tree

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

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

Loading…
Cancel
Save