美文网首页
约瑟夫问题

约瑟夫问题

作者: 梁森的简书 | 来源:发表于2021-02-02 22:37 被阅读0次
0.约瑟夫问题.png

找到首节点、创建一个节点记录遍历当前节点的前一个节点、创建一个计数器,当计数器的值为3的时候,将该节点从链表中移除,直到剩下最后一个节点。

 /// 约瑟夫问题
    private func testJoseph() {
        
        var firstNode = TNode<Int>(item: nil, next: nil)
        var pre = TNode<Int>(item: nil, next: nil)
        
        // 创建循环链表
        for i in 1...41 {
            if i == 1 {
                firstNode = TNode(item: i, next: nil)
                pre = firstNode
                continue
            }
            
            let node = TNode(item: i, next: nil)
            pre.next = node
            pre = node
            
            if i == 41 {
                pre.next = firstNode
            }
        }
        
//        var testNode = firstNode
//        while testNode.next?.item != 1 {
//            testNode = testNode.next!
//            print("\(testNode.item ?? 0)")
//        }
        
        var n = firstNode
        var before = TNode<Int>(item: nil, next: nil)
        var count = 0
        /// 将计数为3的节点移除
        while n.next != n {
            count += 1
            if count == 3 {
                before.next = n.next
                print("\(n.item ?? 0)")
                count = 0
                n = n.next!
            } else {
                before = n
                n = n.next!
            }
        }
        
        print("最后剩下:\(n.item ?? 0)")
    }

demo地址:https://github.com/yangguanghei/studyDateStructure

相关文章

  • 约瑟夫问题

    今天看了一下约瑟夫问题,嗯,感觉自己智商欠费:( 还是来总结下好啦~ 问题 约瑟夫是犹太军队的一个将军,在反...

  • 约瑟夫问题

    题目:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下...

  • 约瑟夫问题

    要是你怎么制定游戏规则? 现在有前面15个好人和后面15个坏人,他们围成一圈。现在从第一个好人开始,数到第n个人就...

  • 约瑟夫问题

    问题来源 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephu...

  • 约瑟夫问题

    源文件josephus.c

  • 约瑟夫问题

    约瑟夫问题 一、数组解法 二、循环队列 三、数学解法

  • 约瑟夫问题

    一、约瑟夫问题介绍 1、约瑟夫问题原题:n个小孩子手拉手围成一个圈,编号为k(1 <= k <= n )的人从1开...

  • 约瑟夫问题

    找到首节点、创建一个节点记录遍历当前节点的前一个节点、创建一个计数器,当计数器的值为3的时候,将该节点从链表中移除...

  • 约瑟夫问题

    大家自行百度下约瑟夫问题,这里用golang+单向循环链表的方式解决约瑟夫问题,下面先提供一下代码: func (...

  • 约瑟夫环问题

    约瑟夫环问题约瑟夫环描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围...

网友评论

      本文标题:约瑟夫问题

      本文链接:https://www.haomeiwen.com/subject/xfretltx.html