想尝试遍历所有元素,代码如下:
package main
import (
"fmt"
"skiplist-master/skiplist"
//"time"
//"math/rand"
)
type Role struct {
Score int64
Name string
}
func NewRole(s int64, n string) (*Role) {
return &Role{Score: s, Name: n}
}
func Print(sp _skiplist.SkipList) {
e := sp.SearchByIndex(0)
for {
if e == nil {
break
}
n, s := e.Key()
fmt.Printf("key:%v, %v, value:%+v\n", n, s, e.Val().(_Role))
if !e.Next() {
break
}
}
}
func main() {
sp := skiplist.New()
var i int64 = 0
//t1 := time.Now().UnixNano()
for ; i < 10; i++ {
r := NewRole(i * 10, fmt.Sprintf("n%v", i))
sp.Insert(r.Score, r.Name, r)
}
fmt.Printf("len:%v\n", sp.Len())
Print(sp)
}
不能遍历全部元素,而且以上代码每次运行的结果都不一样。
求指导,我该如何进行遍历?
想尝试遍历所有元素,代码如下:
package main
import (
"fmt"
"skiplist-master/skiplist"
//"time"
//"math/rand"
)
type Role struct {
Score int64
Name string
}
func NewRole(s int64, n string) (*Role) {
return &Role{Score: s, Name: n}
}
func Print(sp _skiplist.SkipList) {
e := sp.SearchByIndex(0)
for {
if e == nil {
break
}
n, s := e.Key()
fmt.Printf("key:%v, %v, value:%+v\n", n, s, e.Val().(_Role))
if !e.Next() {
break
}
}
}
func main() {
sp := skiplist.New()
var i int64 = 0
//t1 := time.Now().UnixNano()
for ; i < 10; i++ {
r := NewRole(i * 10, fmt.Sprintf("n%v", i))
sp.Insert(r.Score, r.Name, r)
}
fmt.Printf("len:%v\n", sp.Len())
Print(sp)
}
不能遍历全部元素,而且以上代码每次运行的结果都不一样。
求指导,我该如何进行遍历?