1.golang源码系列---手把手带你看list实现
golang源码系列---手把手带你看list实现
本文提供Golang源码中双向链表实现的详细解析。
双向链表结构包含头节点对象root和链表长度,链表无需遍历获取长度,源码链表节点额外设指针指向链表,代码母亲节源码方便信息获取。构建构建个链
创建双向链表使用`list.New`函数,链表源码图鉴文件初始化链表。源码
`Init`方法可初始化或清空链表,代码链表结构内含占位头结点。构建构建个链
`Len`方法返回链表长度,链表由结构体字段存储,源码无需遍历。代码
`Front`与`Back`分别获取头结点和尾结点。构建构建个链app龙虎源码
`InsertBefore`与`InsertAfter`方法在指定节点前后插入新节点,链表底层调用`insertValue`实现。源码
`PushFront`与`PushBack`方法分别在链表头部和尾部插入新节点。全民共识源码
`MoveToBack`与`MoveToFront`内部调用`move`方法,将节点移动至特定位置。
`MoveBefore`与`MoveAfter`将节点移动至指定节点前后。飞禽捕鱼源码
`PushBackList`与`PushFrontList`方法分别在链表尾部或头部插入其他链表节点。
例如,原始链表A1 - A2 - A3与链表B1 - B2 - B3,`PushFrontList`结果为B1 - B2 - B3 - A1 - A2 - A3,`PushBackList`结果为A1 - A2 - A3 - B1 - B2 - B3。