資料結構實訓 joseph環

2021-10-02 20:31:28 字數 1075 閱讀 5799

任務:編號是1,2,……,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼(正整數)。一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計乙個程式來求出出列順序。

要求:利用單向迴圈鍊錶儲存結構模擬此過程,按照出列的順序輸出各個人的編號。

測試資料:m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,首先m=6,則正確的輸出是什麼?

輸入資料:建立輸入處理輸入資料,輸入m的初值,n ,輸入每個人的密碼,建立單迴圈鍊錶。

輸出形式:建立乙個輸出函式,將正確的輸出序列

#include

#include

using

namespace std;

typedef

int elemtype;

typedef

struct lnode

linknode;

void

createlist

(linknode *

&l,elemtype a,

int n)

//建立迴圈單鏈表

r->next=l;

}void

joseph

(linknode *

&l,int

&m,int

&n) q=p-

>next;

e=q-

>password;

f=q-

>number;

p->next=q-

>next;

free

(q);

cout<" ";

p=p-

>next;

m=e;

} cout<}int

main()

createlist

(l,passw,n)

;joseph

(l,m,n)

;return0;

}

僅作留檔。

資料結構實訓作業

1 include 2 define datamax 100 3 typedef struct string 7 初始化字串 8void initstring string s 912 輸入字串 13void inputstring string s 1422 s data i 0 23 s len...

資料結構實訓 各種排序

任務 用程式實現插入法排序 起泡法改進演算法排序 利用插入排序和冒泡法的改進演算法,將使用者隨機輸入的一列數按遞增的順序排好。輸入的資料形式為任何乙個正整數,大小不限。輸出的形式 數字大小逐個遞增的數列。include using namespace std void insertsort int ...

資料結構高階實訓七

題目2題目3 data structure advanced training course notes and algorithm exercises source code 判斷兩個鍊錶是否相交?給定兩個單鏈表,判斷兩個單鏈表是否相交?假設兩個單鏈表均沒有環 如果鍊錶有交點,那麼他們一定有共同字...