本教程操作系统:windows10系统、go1.20.1版本、dell g3电脑。
go 语言中可以通过结构体和指针来实现单链表。
具体的方法如下:
1、定义链表节点结构体
type listnode struct { val int next *listnode}
2、实现节点的增、删、改、查等操作
// 遍历节点func (head *listnode) traverse() {for head != nil {fmt.println(head.val)head = head.next}}// 在链表头添加新节点func (head *listnode) addathead(val int) *listnode {node := &listnode{val: val,next: head,}return node}// 在链表尾添加新节点func (head *listnode) addattail(val int) *listnode {if head == nil {return &listnode{val: val,next: nil,}}cur := headfor cur.next != nil {cur = cur.next}cur.next = &listnode{val: val,next: nil,}return head}// 在链表指定位置插入新节点func (head *listnode) addatindex(index, val int) *listnode {if index <= 0 {return head.addathead(val)}cur := headfor i := 0; i < index-1 && cur != nil; i++ {cur = cur.next}if cur == nil {return head}node := &listnode{val: val,next: cur.next,}cur.next = nodereturn head}// 删除链表指定位置的节点func (head *listnode) deleteatindex(index int) *listnode {if index < 0 {return head}if index == 0 {return head.next}cur := headfor i := 0; i < index-1 && cur != nil; i++ {cur = cur.next}if cur == nil || cur.next == nil {return head}cur.next = cur.next.nextreturn head}// 获取链表指定位置的节点值func (head *listnode)
以上就是go语言如何实现单链表的详细内容。
