迴圈鍊錶(約瑟夫環問題)

2022-07-13 03:54:12 字數 469 閱讀 6098

已知n個人(以編號1,2,3,…,n分別表示)圍坐在一張圓桌周圍。從編號為k

的人開始報數,數到m的那個人出列;他的下乙個人又從k開始報數,數到m的那個人又出

列;依此規律重複下去,直到圓桌周圍的人全部出列。試用c++程式設計實現。[中國著名門戶

**w公司2023年面試題]

解析:本題就是約瑟夫環問題的實際場景。要通過輸入n、m、k 3個正整數,求出列的

序列。這個問題採用的是典型的迴圈鍊錶的資料結構,就是將乙個鍊錶的尾元素指標指向隊

首元素:

解決問題的核心步驟如下:

(1)建立乙個具有n個鏈節點、無頭節點的迴圈鍊錶。

(2)確定第1個報數人的位置。

(3)不斷地從鍊錶中刪除鏈節點,直到鍊錶為空。

答案:完整**如下:

約瑟夫環問題(迴圈鍊錶)

這是一道比較經典的迴圈鍊錶問題,在華為上機筆試中也出現過。約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。includ...

約瑟夫環問題(迴圈鍊錶)

轉 約瑟夫環 是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。include include typedef struct n...

迴圈鍊錶 約瑟夫環問題

正好這幾天在看資料結構,覺得鍊錶應用挺廣的,特寫一例項。問題描述 選首領。n個遊戲者圍成一圈,從第乙個開始順序報數1,2,3.凡報到3者退出圈子,最後留在圈中的人為首領。思路 建立乙個包含n個節點的單迴圈鍊錶來模擬n個人圍成的圈。節點的資料域存放遊戲者的編號。在程式中,以刪除節點模擬人退出圈子的處理...