原文:約瑟夫環問題,一道經典的數據結構題目

問題描述:n個人 編號 n ,從 開始報數,報到 m 的退出,剩下的人繼續從 開始報數。求勝利者的編號。 一般我們采用一個循環隊列來模擬約瑟夫環的求解過程,但是如果n比較大的時候,采用模擬的方式求解,需要大量的時間來模擬退出的過程,而且由於需要占用大量的內存空間來模擬隊列中的n個人,並不是一個很好的解法。 在大部分情況下,我們僅僅需要知道最后那個人的編號,而不是要來模擬一個這樣的過程,在這種情況下 ...

2017-12-31 19:41 0 1288 推薦指數:

查看詳情

數據結構 —— 約瑟夫

今日一言:謝謝你,成為我前進的理由。——《言葉之庭》 數據結構 —— 約瑟夫 這是用鏈表實現的,約瑟夫的規則是:總數為N的同學圍成一個圓環,並將這些同學從1開始編號,游戲開始時,約定好一個數字K,從1號同學開始輪着叫號,當叫到K號時,該同學淘汰,下一位同學從1開始重新 ...

Mon May 25 06:51:00 CST 2020 0 2497
數據結構約瑟夫問題(循環單鏈表)

n個數據元素構成一個,從環中任意位置開始計數,計到m將該元素從表中取出,重復上述過程,直至表中只剩下一個元素。 解題思路:用一個無頭結點的循環單鏈表來實現n個元素的存儲。循環單鏈表:尾指針指向頭結點。這樣指針可以循環移動。 可以使用兩個指針來操作,將指針q指向需要操作的結點上,指針p指向需要 ...

Mon Nov 05 05:40:00 CST 2018 0 1834
數據結構---鏈表及約瑟夫問題帶來的思考

鏈表和數組一樣也是線性表的一種。和數組不同,它不需要再內存中開辟連續的空間。 鏈表通過指針將一組零散的內存塊連接在一起。我們把內存塊稱為鏈表的“結點”(是節點還是結點,結點連接起來打個結所以叫“結點 ...

Wed Apr 01 07:23:00 CST 2020 0 660
數據結構設計——約瑟夫問題

本篇文章中所有數據結構都是后期整理的,如有問題歡迎指正,轉載請注明出處http://www.cnblogs.com/a1982467767/p/8893553.html 約瑟夫問題實現 實驗程序: ...

Sat Apr 21 04:32:00 CST 2018 0 1893
Java數據結構之單向環形鏈表(解決Josephu約瑟夫問題

1.Josephu(約瑟夫約瑟夫問題: 設編號為1,2,… n的n個人圍坐一圈,約定編號為k(1<=k<=n)的人從1開始報數,數到m 的那個人出列,它的下一位又從1開始報數,數到m的那個人又出列,依次類推,直到所有人出列為止,由此產生一個出隊編號的序列。 提示: 用一個 ...

Thu Jul 25 07:28:00 CST 2019 0 1075
數據結構約瑟夫問題(鏈表法)

什么是約瑟夫問題約瑟夫問題:n個人圍成一圈,初始編號從1~n排列,從約定編號為x的人開始報數,數到第m個人出圈,接着又從1開始報數,報到第m個數的人又退出圈,以此類推,最后圈內只剩下一個人,這個人就是贏家,求出贏家的編號。 是不是有點點復雜,其實該問題歸結為模擬類型的算法題 ...

Sun Oct 10 06:42:00 CST 2021 0 919
約瑟夫(N個人圍桌,C語言,數據結構

約瑟夫問題(C語言、數據結構版) 一、問題描述 N個人圍城一桌(首位相連),約定從1報數,報到數為k的人出局,然后下一位又從1開始報,以此類推。最后留下的人獲勝。(有很多類似問題,如猴子選代王等等,解法都一樣) 二、思路分析   (1)可將人的順序簡單編號,從1到N;   (2)構造 ...

Wed Oct 07 07:21:00 CST 2015 1 47277
約瑟夫問題的幾種經典解法

經典約瑟夫問題描述: 有n個人圍成一圈,從1開始順序排號。從第一個人開始報數(從1~3報數),凡報到3的人退出圈子,問最后留下的是原來的第幾號? 數組循環模擬法 雙向鏈表模擬法 數學推理法 無論是用鏈表實現還是用數組實現都有一個共同點:要模擬整個游戲過程,不僅程序寫起來 ...

Sun Sep 01 07:01:00 CST 2019 0 367
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM