josephu.go
package linkimport ( "fmt")type KID struct { ID int next *KID}func AddKID(num int) *KID { first := &KID{} cur := &KID{} if num < 1 { fmt.Println(不合法) return first } for i := 1; i <= num; i++ { kID := &KID{ ID: ,} if i == { first = kID cur = kID cur.next = first } else { tmpKID := &KID{ ID: i,} cur.next = tmpKID cur = tmpKID cur.next = first } } first}func ShowKID(first *KID) { if first.next == nil { fmt.Println(链表已空) } cur := first for { fmt.Printf(小孩编号:%d\nif cur.next == first { break } cur = cur.next }}func Play(first *KID,start int,count ) { 空链表 } tail := { //到最后一个节点了 if tail.next == } tail = tail.next } 删除就以frst为主,让first移动到要删除的位置 1; i <= start-1; i++ { first = first.next tail =开始数,然后进行删除 1; i <= count- first.next tail = tail.next } fmt.Printf(编号为:%d 的出列\n first.next tail.next = first if tail == } } fmt.Printf(package mainimport go_code/data_structure/linkfunc main() { first := link.AddKID(20) link.ShowKID(first) link.Play(first,1,3)}
运行结果:
f:\goproject\src\go_code\data_structure>go run main.go
小孩编号:1
小孩编号:2
小孩编号:3
小孩编号:4
小孩编号:5
小孩编号:6
小孩编号:7
小孩编号:8
小孩编号:9
小孩编号:10
小孩编号:11
小孩编号:12
小孩编号:13
小孩编号:14
小孩编号:15
小孩编号:16
小孩编号:17
小孩编号:18
小孩编号:19
小孩编号:20
编号为:3 的出列
编号为:6 的出列
编号为:9 的出列
编号为:12 的出列
编号为:15 的出列
编号为:18 的出列
编号为:1 的出列
编号为:5 的出列
编号为:10 的出列
编号为:14 的出列
编号为:19 的出列
编号为:4 的出列
编号为:11 的出列
编号为:17 的出列
编号为:7 的出列
编号为:16 的出列
编号为:8 的出列
编号为:2 的出列
编号为:13 的出列
编号为:20 的出列
以上是内存溢出为你收集整理的golang数据结构之用循环链表解决约瑟夫环问题全部内容,希望文章能够帮你解决golang数据结构之用循环链表解决约瑟夫环问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)