線性表練習之Josephus

2021-10-04 17:39:45 字數 1150 閱讀 8487

利用迴圈鍊錶實現約瑟夫問題。約瑟夫問題如下:已知n個人(n>=1)圍坐一圓桌周圍,從1開始順序編號。從序號為1的人開始報數,順時針數到m的那個人出列;他的下乙個人又從1開始報數,數到m的那個人又出列;依此規則重複下去,直到所有人全部出列。請問最後乙個出列的人的編號。

輸入描述:

一行,人數n和整數m,中間用空格隔開

輸出描述:

一行,最後乙個出列的人的編號

樣例輸入:

5 3樣例輸出:

4

#include

using

namespace std;

class

node

int data;

node *next;};

node *

clinklist

(int n)

r->next = rear;

return rear;

}void

output

(node *rear,

int m)

else

} cout << r-

>data << endl;

}int

main()

class

node

int data;

node *next;

};

**:

(1)data 的值為i

node *

clinklist

(int n)

r->next = rear;

return rear;

}

**:

迴圈鍊錶rear的重要性

void

output

(node *rear,

int m)

else

} cout << r-

>data << endl;

}

**:

計數,刪除,迴圈,直到只剩一人

祖瑪遊戲分析

0664

線性表操作練習

1 線性表練習 1 從給定順序表a中刪除元素值在x到y x y 之間的所有元素,效率要求較高。int def vector a,int n,elemtype x,elemtype y return n k 2 用不多於3n 2的平均比較次數,在乙個順序表a中找出最大的和最小的值。void maxmi...

線性表小練習

2018 3 1 資料結構 2.對於增加數採用迴圈的方法,所加數的後面數都向後移 最後的數先移 for j l length j i j l data j l data j 1 3.對於減少數採用迴圈的方法,所減數的後面數字向前移動 最先的數最先移 for i i l length i l data...

作業 線性表練習

1 1對於順序儲存的長度為n的線性表,訪問結點和增加結點的時間複雜度分別對應為o 1 和o n 2分 t 1 2對於順序儲存的長度為n的線性表,刪除第乙個元素和插入最後乙個元素的時間複雜度分別對應為o 1 和o n 2分 f 1 3迴圈鍊錶不是線性表。2分 f 1 3答案正確 2 分 1 4順序儲存...