algorithms in go
1.0.0
พื้นที่เก็บข้อมูลนี้คือการใช้โครงสร้างข้อมูลและ alogrithms ต่าง ๆ ใน GO
func main () {
s := stack . New ()
s . Push ( 6 )
s . Push ( 8 )
top , _ := s . Pop ()
fmt . Println ( top ) // Prints 8
top , _ = s . Peek ()
fmt . Println ( top ) // Prints 6
}สำหรับเอกสารเพิ่มเติมเกี่ยวกับสแต็ก
func main () {
q := queue . New ()
q . Enqueue ( 6 )
q . Enqueue ( 8 )
first , _ := q . Dequeue ()
fmt . Println ( first ) // Prints 6
first , _ = q . First ()
fmt . Println ( first ) // Prints 8
}สำหรับเอกสารเพิ่มเติมเกี่ยวกับคิว
โดยค่าเริ่มต้นคุณสามารถสร้าง minheap หรือ maxheap ด้วยรายการ int64
func main () {
h := heap . NewMinHeapInt64 ()
h . Insert ( int64 ( 5 ))
h . Insert ( int64 ( 2 ))
h . Insert ( int64 ( 3 ))
first , _ := h . Remove ()
fmt . Println ( first ) // Prints 2
second , _ := h . Remove ()
fmt . Println ( second ) // Prints 3
third , _ := h . Top ()
fmt . Println ( third ) // Prints 5
}คุณสามารถสร้างกองทุกประเภท คุณจะต้องกำหนดวิธีการที่ยืนยันว่าควรรักษาทรัพย์สินของฮีปของคุณอย่างไร
func main () {
type myStruct struct {
value int
label string
}
// define how your heap property is maintained
comparator := func ( a , b interface {}) bool {
return a .( myStruct ). value < b .( myStruct ). value
}
first := myStruct { 5 , "a" }
second := myStruct { 8 , "b" }
third := myStruct { 3 , "c" }
h := heap . New ( comparator )
h . Insert ( first )
h . Insert ( second )
h . Insert ( third )
val , _ := h . Top ()
fmt . Println ( val ) // Prints {3 c}
}สำหรับเอกสารเพิ่มเติมเกี่ยวกับกอง
วิธีการที่นำเสนอในแพ็คเกจสตริง
สิ่งนี้ใช้อัลกอริทึมการจับคู่ Substring Rabin-Karp
func main () {
strings . Contains ( "source string" , "ce s" ) // true
}สำหรับเอกสารเพิ่มเติมเกี่ยวกับสตริง
go test -v ./...