josephu.go

package link

import (
"fmt"
) type Kid struct {
ID int
next *Kid
} func AddKid(num int) *Kid {
first := &Kid{}
cur := &Kid{} if num < {
fmt.Println("不合法")
return first
}
for i := ; 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 }
}
return first
} func ShowKid(first *Kid) {
if first.next == nil {
fmt.Println("链表已空")
}
cur := first
for {
fmt.Printf("小孩编号:%d\n", cur.ID)
if cur.next == first {
break
}
cur = cur.next
}
}
func Play(first *Kid, start int, count int) { if first.next == nil {
fmt.Println("空链表")
return
}
tail := first
for {
//到最后一个节点了
if tail.next == first {
break
}
tail = tail.next
}
//删除就以frst为主,让first移动到要删除的位置
for i := ; i <= start-; i++ {
first = first.next
tail = tail.next
}
//开始数,然后进行删除
for {
for i := ; i <= count-; i++ {
first = first.next
tail = tail.next
}
fmt.Printf("编号为:%d 的出列\n", first.ID)
first = first.next
tail.next = first
if tail == first {
break
}
}
fmt.Printf("编号为:%d 的出列\n", first.ID)
}

main.go

package main

import "go_code/data_structure/link"

func main() {

    first := link.AddKid()
link.ShowKid(first)
link.Play(first, , )
}

运行结果:

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 的出列

最新文章

  1. Notification的功能与用法
  2. BZOJ2441: [中山市选2011]小W的问题
  3. 使用Keras对交通标志进行分类
  4. Windows 10 安装过程中,在自定义登录页面进入审核模式
  5. 7. Vulnerability exploitation tools (漏洞利用工具 11个)
  6. iptables命令提取总结,包含扩展模块&lt;取自朱双印博客&gt;
  7. Java面试题全集(下)转载
  8. 数据恢复Winhex的核心理念
  9. oracle数据库连接 ORA-12638:身份证明检索失败
  10. 使用.NET Core与Google Optimization Tools实现加工车间任务规划
  11. 设计模式---对象创建模式之原型模式(prototype)
  12. Python3在指定路径下递归定位文件中出现的字符串
  13. python之路----线程
  14. 理解ResourceBundle.getBundle(&quot;dataSourceFactory&quot;)
  15. FCC的javascript初级算法题解答
  16. pip install mysql-connector 安装出错
  17. 一文读懂加固apk的开发者是怎么想的
  18. 数据库路由中间件MyCat - 背景篇(2)
  19. fastlane自动化打包ipa并发布到firim或者蒲公英
  20. POJ 2763 Housewife Wind(树链剖分+树状数组)

热门文章

  1. AWS云EC2(RHEL7)添加网络接口与路由调整
  2. 浅谈——MySQL存储引擎
  3. CF 1114D(538,div2) Flood Fill
  4. [考试反思]1112csp-s模拟测试112:二返
  5. React: React组件的生命周期
  6. Python爬虫的概括以及实战
  7. sublime插件开发教程4
  8. Linux中哪些工具堪称神器?
  9. Mybatis1
  10. cookie --中间件