golang链表相关操作

type Thing struct {
	Id   int
	Info string
}
func main{

	doubleList := list.New()  //生成一个双向链表的对象
	doubleList.PushBack(&Thing{Id: 1, Info: "hello"})  //想链表后端添加数据,数据的来源是刚刚定义好的结构体类型.(这里需要添加指针类型,否则无法添加到链表对应的内存空间)
	doubleList.PushBack(&Thing{Id: 2, Info: "list"})
	doubleList.PushBack(&Thing{Id: 3, Info: "!"})
	for e := doubleList.Front(); e != nil; e = e.Next() {  //遍历链表内容.
		v := (e.Value).(*Thing)  //这里貌似需要做一个类型断言.??
		if v.Id == 2 {
			doubleList.Remove(e)  //将需要移除的链表节点移除
		}
		fmt.Printf("v:%v\n", v)
	}

	//尾部添加
	doubleList.PushBack(&Thing{
		Id:   2,
		Info: "list",
	})
	//头部添加
	doubleList.PushFront(&Thing{
		Id:   0,
		Info: "0",
	})
	for i := doubleList.Front(); i != nil; i = i.Next() {
		fmt.Println("链表:", i.Value)
	}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值