List

func printList(i string, l list.List) {
	fmt.Println(i)
	fmt.Printf("类型:%T  值:%v  长度:%d \n", l, l, l.Len())
}
func printIterateList(l list.List) {
	for e := l.Front(); e != nil; e = e.Next() {
		fmt.Printf("%T,  %v  \n", e.Value, e.Value)
	}
}
func main() { // main函数叫做入口函数,go约定main函数必须在main包中定义
	var list1 list.List
	printList("测试声明list", list1)

	list1.PushFront(true)
	list1.PushFront("aaa")
	list1.PushFront(111)
	// 尾部添加
	list1.PushBack("2222")
	printList("添加后的list为:", list1)
	printIterateList(list1)

	fmt.Println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
	var list2 = list.New()
	list2.PushFront(111)
	list2.PushFront("222")
	ele := list2.PushBack(nil)
	list2.InsertBefore("fuck", ele)
	list2.Remove(ele)
	for e := list2.Front(); e != nil; e = e.Next() {
		fmt.Println(e.Value)
	}

}

image

list遍历

// 顺序遍历 e.Next 获取下一个元素      list2.Front获取第一个元素
	for e := list2.Front(); e != nil; e = e.Next() {
		fmt.Println(e.Value)
	}
// 逆序遍历 e.Prev 获取上一个元素   list2.Back 获取最后一个元素
	for e := list2.Back(); e != nil; e = e.Prev() {
		fmt.Println(e.Value)
	}