加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang数据结构之用循环链表解决约瑟夫环问题

发布时间:2020-12-16 09:18:17 所属栏目:大数据 来源:网络整理
导读: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 =

josephu.go

package link

import (
    "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(小孩编号:%dnif 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 main

import go_code/data_structure/link

func main() {

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

运行结果:

f:goprojectsrcgo_codedata_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 的出列

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读