| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | package mainimport (	"bufio"	"fmt"	"io"	"os"	"strings"	"time")func main() {	// rand.Seed(time.Now().UnixNano())	// b := bst.New()	// // for i := 0; i < 100; i++ {	// // 	b.Add(rand.Intn(1000))	// // }	// b.Add(10)	// b.Add(5)	// b.Add(15)	// b.Add(6)	// b.Add(4)	// b.Add(3)	// b.Add(8)	// b.Add(7)	// b.Add(16)	// b.Add(14)	// b.Add(13)	// b.Add(18)	// b.Add(17)	// b.GetList()	// fmt.Println(b.Contains(8))	// fmt.Println(b.Minimum())	// fmt.Println(b.Maxmum())	// b.Remove(8)	// b.GetList()	// fmt.Println(b.Contains(8))	// filename, _ := filepath.Abs("a.txt")	// fmt.Println(filename)	// words1 := ReadFile(filename)	// fmt.Println(len(words1))	// set1 := bstset.New()	// for _, word := range words1 {	// 	set1.Add(word)	// }	// fmt.Println(set1.GetSize())	// fmt.Println("a Tale of Two Cities")	// filename, _ = filepath.Abs("b.txt")	// words2 := ReadFile(filename)	// fmt.Println(len(words2))	// set2 := bstset.New()	// for _, word := range words2 {	// 	set2.Add(word)	// }	// fmt.Println(set2.GetSize())	// maxheaptest := maxheap.New()	// rand.Seed(time.Now().UnixNano())	// for i := 0; i < 1000; i++ {	// 	maxheaptest.Add(rand.Intn(1000000))	// }	// n := 0	// m := maxheaptest.GetSize()	// for i := 0; i < 1000; i++ {	// 	fmt.Println(maxheaptest.ExtractMax(), maxheaptest.GetSize())	// 	n++	// }	// fmt.Println(n, m)	timeTemplate := "2006-01-02"	t, _ := time.ParseInLocation(timeTemplate, "2010-01-01", time.Local)	fmt.Println(int(t.Weekday()), t.AddDate(0, 1, -1))}func ReadFile(filename string) []string {	var words []string	file, err := os.Open(filename)	if err != nil {		panic(err)	}	defer file.Close()	reader := bufio.NewReader(file)	for {		line, err := reader.ReadString('\n')		if err != nil || io.EOF == err {			break		}		wordSlice := strings.Fields(line)		for _, word := range wordSlice {			if word = extractStr(strings.ToLower(word)); word != "" {				words = append(words, word)			}		}	}	return words}func extractStr(str string) string {	var res []rune	for _, letter := range str {		if letter >= 'a' && letter <= 'z' {			res = append(res, letter)		}	}	return string(res)}
 |