文章目录
一、Golang数据结构-环形链表
1.基本介绍
环形链表的元素由一个或多个Ring结构体组成,每一个代表环形链表的一个元素,但它同时也代表链表本身。环形链表没有头尾;指向环形链表任一元素的指针都可以作为整个环形链表看待。由此可以看出,环形链表没有实体,多个元素组合在一起就是一个环形链表,每一个元素成员都可以代表环形链表。
二、使用步骤
1.使用一个结构体管理单链表
代码如下:
package main
import(
"fmt"
)
//定义猫的结构体结点
type CatNode struct{
no int
name string
next *CatNode
}
2.添加链表数据
代码如下:
func InsertCatNode(head *CatNode, newCatNode *CatNode){
if head.next == nil{
//链表为空
head.no = newCatNode.no
head.name = newCatNode.name
head.next = head //构成一个环形
return
}
//定义一个临时变量,帮忙找到环形链表的最后结点
temp := head
for{
if temp.next == head{
break
}
temp = temp.next
}
temp.next = newCatNode
newCatNode.next