mirror of
https://github.com/duke-git/lancet.git
synced 2025-10-27 09:20:21 +08:00
feat: add funcs to traverse bstree
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
package datastructure
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/duke-git/lancet/internal"
|
||||
)
|
||||
|
||||
type intComparator struct{}
|
||||
|
||||
@@ -27,3 +31,51 @@ func TestBSTree_Insert(t *testing.T) {
|
||||
|
||||
bstree.Print()
|
||||
}
|
||||
|
||||
func TestBSTree_PreOrderTraverse(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestBSTree_PreOrderTraverse")
|
||||
|
||||
bstree := NewBSTree(6)
|
||||
|
||||
comparator := &intComparator{}
|
||||
bstree.Insert(7, comparator)
|
||||
bstree.Insert(5, comparator)
|
||||
bstree.Insert(2, comparator)
|
||||
bstree.Insert(4, comparator)
|
||||
|
||||
acturl := bstree.PreOrderTraverse()
|
||||
t.Log(acturl)
|
||||
assert.Equal([]int{6, 5, 2, 4, 7}, acturl)
|
||||
}
|
||||
|
||||
func TestBSTree_PostOrderTraverse(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestBSTree_PostOrderTraverse")
|
||||
|
||||
bstree := NewBSTree(6)
|
||||
|
||||
comparator := &intComparator{}
|
||||
bstree.Insert(7, comparator)
|
||||
bstree.Insert(5, comparator)
|
||||
bstree.Insert(2, comparator)
|
||||
bstree.Insert(4, comparator)
|
||||
|
||||
acturl := bstree.PostOrderTraverse()
|
||||
t.Log(acturl)
|
||||
assert.Equal([]int{5, 2, 4, 7, 6}, acturl)
|
||||
}
|
||||
|
||||
func TestBSTree_InOrderTraverse(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestBSTree_InOrderTraverse")
|
||||
|
||||
bstree := NewBSTree(6)
|
||||
|
||||
comparator := &intComparator{}
|
||||
bstree.Insert(7, comparator)
|
||||
bstree.Insert(5, comparator)
|
||||
bstree.Insert(2, comparator)
|
||||
bstree.Insert(4, comparator)
|
||||
|
||||
acturl := bstree.InOrderTraverse()
|
||||
t.Log(acturl)
|
||||
assert.Equal([]int{2, 4, 5, 6, 7}, acturl)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user