任務:編號是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 判斷兩個鍊錶是否相交?給定兩個單鏈表,判斷兩個單鏈表是否相交?假設兩個單鏈表均沒有環 如果鍊錶有交點,那麼他們一定有共同字...