#define ERROR 0
#define OK 1
#include
#include
struct CirNode/*定義每個結(jié)點(diǎn)的類型 */
{
int data;/*每個人所擁有的密碼*/
int num;/*每個人在圈中的位序*/
struct CirNode *next;
};
int a[30]; /*人數(shù)要求≤30 */
struct CirNode *CreateList(int n)/*生成n個結(jié)點(diǎn)的單向循環(huán)鏈表 */
{
struct CirNode *L,*p,*q;
int i;
int j=1;
L=q=(struct CirNode*)malloc(sizeof(struct CirNode));/*建立一個不帶頭結(jié)點(diǎn)的單向循環(huán)鏈表 */
if(!q) return ERROR;
printf("shu ru mei ge ren de mi ma:\n");
q->num=j;
printf("%d.data=",j);
scanf("%d",&q->data);
j++;
q->next=L;
for(i=1;inum=j;
printf("%d.data=",j);
scanf("%d",&p->data);
j++;
q->next=p;
p->next=L;
q=q->next;
}/*for*/
return (L);
}/*Create*/
struct CirNode *DeleteList(struct CirNode *L,int m,int n)/*報(bào)m的人出列*/
{
int i,j=0;
int k=n;
struct CirNode *p,*q,*pre;
pre=p=L;
do
{
i=1;
while(inext;i++;}
if(m==1)
{
while(pre->next!=p) pre=pre->next;
m=p->data;/*得到新的密碼 */
a[j]=p->num;/*得到出列人的序號 */
q=p;
pre->next=p->next;
p=p->next;
free(q);
L=pre=p;/*讓新的報(bào)1的人作為頭結(jié)點(diǎn) */
k--;j++;
}/*if */
else
{
q=p->next;
m=q->data;
a[j]=q->num;
p->next=q->next;
p=q->next;
free(q);
L=pre=p;
k--;j++;
}/*else*/
}while(k>1);
a[j]=p->num;/*最后一個出列人的序號 */
printf("xian zai suo you ren chu lie.\n");
return (L);
}/*DeleteList*/
int main()
{
struct CirNode *L;
int i,n,m;
printf("\n");
printf("qing shu ru ren shu,n=");
scanf("%d",&n);
if(n>30||n
編號為1,2,…,n的n個人按順時針方向圍坐一圈
編號為1,2,…,n的n個人按順時針方向圍坐一圈
每人持有一個密碼(正整數(shù)),一開始人選一個正整數(shù)作為報(bào)數(shù)上限m,從第一個人開始按順時針方向從自1開始順序報(bào)數(shù),報(bào)道m(xù)時停止報(bào)數(shù).報(bào)m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下一個人開始重新從1報(bào)數(shù),如此下去,直至所有人全部出列為止,設(shè)計(jì)一個程序求出出列順序.
采用單向循環(huán)鏈表模擬此過程,按照出列的順序印出各人的編號
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
測試數(shù)據(jù):
m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,則正確的輸出是什么?
輸入數(shù)據(jù):處理輸入數(shù)據(jù),輸入m的初值,n ,輸入每個人的密碼,建立單循環(huán)鏈表.
不要c++
每人持有一個密碼(正整數(shù)),一開始人選一個正整數(shù)作為報(bào)數(shù)上限m,從第一個人開始按順時針方向從自1開始順序報(bào)數(shù),報(bào)道m(xù)時停止報(bào)數(shù).報(bào)m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下一個人開始重新從1報(bào)數(shù),如此下去,直至所有人全部出列為止,設(shè)計(jì)一個程序求出出列順序.
采用單向循環(huán)鏈表模擬此過程,按照出列的順序印出各人的編號
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
用C語言版的數(shù)據(jù)結(jié)構(gòu)編寫
測試數(shù)據(jù):
m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,則正確的輸出是什么?
輸入數(shù)據(jù):處理輸入數(shù)據(jù),輸入m的初值,n ,輸入每個人的密碼,建立單循環(huán)鏈表.
不要c++
其他人氣:984 ℃時間:2020-08-01 05:23:26
優(yōu)質(zhì)解答
我來回答
類似推薦
- 在控制臺下實(shí)現(xiàn)約瑟夫環(huán).編號為1,2,3,……,n 的 n 個人按順時針方向圍坐一圈,每人持有一個密碼
- 設(shè)有n個人圍坐一圈并按順時針方向從1到n編號,從第s個人開始進(jìn)行1到m的報(bào)數(shù),報(bào)數(shù)到第m個人,此人出圈,再從他的下一個人重新開始1到m的報(bào)數(shù),如此進(jìn)行下去直到所有的人都出圈為止.現(xiàn)要求按出圈次序,每10人一組,給出這n個人的順序表.編制函數(shù)
- 11個人圍坐在圓桌旁做傳花游戲,.坐定后按順時針方向,每人分別標(biāo)上1,2,3,…,10,11號碼,傳花前1號的
- 若將圓分成二十等分,按照順時針方向一次編號1.2.3...20,小明從編號3點(diǎn)開始,沿順時針方向行走,經(jīng)過2015次移位后,他在編號 的點(diǎn)上
- 把1~8這8個號碼按順時針方向擺成一個圓圈,現(xiàn)在有一個小球,第一天從一號順時針前進(jìn)33個位置,第二天在逆時針前進(jìn)45個位置,第三天又順時針前進(jìn)33個位置,第四天,再逆時針前進(jìn)45個位置,至少經(jīng)過多少天后,小球又回到原來的1號位置?
- i believe that that that that that student says is right.
- 薄煙的薄應(yīng)該怎么念?這個字的兩種讀音又該怎樣分辨?
- 一九七九年那是一個春天,有一個老人在中國南海邊……
- i used to think that i could not go on的手語
- 文言文題目【王充市肆博覽】
- 翻譯句子:如果明天下雨怎么辦?用What if.(另外,what if后面用陳述語序,必須用一般現(xiàn)在時態(tài)嗎?)
- 怎樣寫自然景觀
猜你喜歡
- 19分之8×10分之3 還有3分之1×4分之1還有6×12分之11
- 2用exercise和dress的適當(dāng)形式填空 (請看問題補(bǔ)充)
- 3甲乙丙三位同學(xué)都喜歡集郵,甲有郵票18張,相當(dāng)于乙的3/4,丙的郵票張數(shù)跟乙的張數(shù)的比恰好是2:3
- 4Everyone is busy() ready for Christmas A.to get B.getting C.got D.gets
- 5函數(shù)不能嵌套定義是什么意思
- 6幫忙解答下《假如你想做一株臘梅》有關(guān)題目
- 7形容兩個人的感情幸福的四字成語
- 8某班7個興趣小組人數(shù)分別為3,3,4,x,5,6,已知這組數(shù)據(jù)的平均數(shù)是4,則這組數(shù)據(jù)的中位數(shù)是?
- 9東南亞的主要礦產(chǎn)和分布?
- 10根據(jù)所給的首字母提示,用合適的單詞填空,
- 11Could you tell me ___ with the money?A hou to do B what should I do C how should I do
- 12“小大之獄,雖不能察,必以情”與“忠之屬也”之間的內(nèi)在聯(lián)系是什么