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 单链表插入
最新推荐文章于 2024-05-20 23:29:47 发布