package main import ( "fmt" "math/rand" ) type Student struct { Name string Age int Score float32 Next *Student } func trans(p *Student) { // 遍历函数 for p != nil { fmt.Println(*p) p= p.Next } } func InsertTail(p *Student) { //尾插法插入10个元素 var tail = p for i:=0; i< 10; i++ { stu := &Student{ Name: fmt.Sprintf("stu%d", i), Age: rand.Intn(100), Score: rand.Float32()*100, } tail.Next = stu tail = stu } } func InsertHead(p **Student) { //头插法 for i:=0; i<10; i++ { stu := Student { Name: fmt.Sprintf("stu%d", i), Age: rand.Intn(100), Score:rand.Float32()* 100, } stu.Next = *p *p = &stu } //删除指定元素 func DelNode(p *Student) { var prev *Student = p for p != nil { if p.Name == "stu6" { prev.Next = p.Next break } prev = p p = p.Next } } //增加指定位置 func addNode(p *Student, newNode *Student) { for p != nil{ if p.Name == "stu9"{ newNode.Next = p.Next p.Next = newNode break } p = p.Next } } } func main() { var head *Student = new(Student) head.Name = "Lihua" head.Age = 19 head.Score = 100 //InsertTail(head) //InsertHead(&head) //DelNode(head) var newNode *Student = new(Student) newNode.Name = "stu1000" newNode.Age = 19 newNode.Score = 100 //addNode(head, newNode) //trans(head) }
GoLang 单链表插入
猜你喜欢
转载自blog.csdn.net/zhangyexinaisurui/article/details/80502441
今日推荐
周排行