github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/algorithm/datastructures/tree/trie/trie_test.go (about) 1 package trie 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 "testing" 8 ) 9 10 func getNames() []string { 11 file, err := os.Open("names.txt") 12 if err != nil { 13 panic(err) 14 } 15 var ret []string 16 scanner := bufio.NewScanner(file) 17 scanner.Split(bufio.ScanLines) 18 for scanner.Scan() { 19 t := scanner.Text() 20 ret = append(ret, t) 21 } 22 return ret 23 } 24 25 func TestTrie(t *testing.T) { 26 tr := NewTrie() 27 names := getNames() 28 for _, name := range names { 29 if len(name) > 0 { 30 tr.Add(name, name) 31 } 32 } 33 fmt.Println("数量:", tr.Size()) 34 fmt.Println(tr.SearchPrefix("约翰")) 35 tr.Remove("约翰顿") 36 fmt.Println(tr.SearchPrefix("约翰")) 37 fmt.Println("数量:", tr.Size()) 38 } 39 40 func TestTrie_Remove(t *testing.T) { 41 tr := NewTrie() 42 tr.Add("小", "小") 43 tr.Add("小米啦", "小米啦") 44 tr.Add("小洪啦", "小洪啦") 45 fmt.Println(tr.SearchPrefix("小")) 46 tr.Remove("小") 47 fmt.Println(tr.SearchPrefix("小")) 48 }