前言
关于golang中list链表的排序操作文章少之又少,因此基于这个情况,特此写个简单的Demo供大家分享
需求背景
比如,现在有个需求,list链表中存入了用户信息,但是是无序的,需要根据用户的年龄和姓名,给list链表中的数据,进行简单排序
实现
1.定义用户结构体
type Person struct {
Name string //名称
Age int //年龄
}
2.存入用户数据
l := list.New()
l.PushBack(Person{1, "张三"})
l.PushBack(Person{3, "李四"})
l.PushBack(Person{2, "王五"})
l.PushBack(Person{3, "马六"})
3.打印现有数据顺序
for v := l.Front(); v != nil; v = v.Next() {
fmt.Println("age:", v.Value.(Person).Age)
}
4.排序算法
func Sort(oldList *list.List) (newList *list.List) {
newList = list.New()
//用老链表进行遍历 与新链表进行表
for v := oldList.Front(); v