GoLang 单链表插入

匿名 (未验证) 提交于 2019-12-03 00:22:01
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)  }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!