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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |