單向迴圈鍊錶的實現以及約瑟夫環的實現

2021-06-07 22:16:33 字數 1939 閱讀 5212

/*

* single.h

* * created on: 2012-7-21

* author: root

*/#ifndef single_h_

#define single_h_

#include#include#define ture 1

#define false 0

typedef struct linklink,*plink;

plink createlink(); //宣告建立單向迴圈鍊錶的函式

void printlink(plink h,int no); //宣告列印單向迴圈鍊錶的函式

plink catlink(plink h,plink s); //宣告連線兩個單向迴圈鍊錶的函式

plink getlink(plink h,int addr); //宣告給定位置返回該位置節點的函式

void josephu(plink h,int n,int local,int no); //約瑟夫函式的宣告

#endif /* single_h_ */

/*

* main.c

* * created on: 2012-7-21

* author: root

*/#include"single.h"

int main()

/*

* single.c

* * created on: 2012-7-21

* author: root

*/#include"single.h"

#if 0

plink createlink() //create the list 建立新鍊錶

else

printf("please input numb:");

scanf("%d",&a);

} r->next = h; //建立單向迴圈鍊錶的關鍵

return h;

}#endif

#if 0

void printlink(plink h,int no) //print the list 列印鍊錶

printf("\n");

}#endif

#if 0

plink getlink(plink h,int addr)

return p;

}#endif

#if 0

#endif

#if 0

plink catlink(plink h,plink s)

#endif

#if 0

void josephu(plink h,int n,int local,int no)

s = r->next;

p = s->next;

r->next = p;

printf("%d\t",s->data);

free(s);

s = r;

} printf("%d",s->data);

printf("\n");

}#endif

單向迴圈鍊錶的應用代表之一就是約瑟夫環的實現

josephu問題:設編號分別為:1,2,…,n的n個人圍坐一圈。約定序號為k(1≤k≤n)的人從1開始計數,數到m的那個人出列,他的下一位又從1開始計數,數到m的那個人又出列,依次類推,直到所有人出列為止

單向迴圈鍊錶 約瑟夫環

寫個約瑟夫環,檢驗一下自己的學習狀況.include define elemtype int typedef struct lnodesqlist void initlist sqlist l,elemtype n void round sqlist l,int m,int n int main v...

C 單向迴圈鍊錶儲存約瑟夫環

問題描述 約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 按 順時針方向圍坐在一張圓桌周圍,每個人持有乙個密碼 正整數 一開始任選乙個整數作為報數 上限值m,從第乙個人開始順時針自1報數,報到m時停止報數,報m的那個人出列,他的密碼作為 新的m值,從他在順時針方...

迴圈鍊錶實現約瑟夫環

約瑟夫問題 有n個人圍坐一圈,從第k個人開始數,數到m的那個人出隊。知道最後乙個人出隊。有11個人,從第2個人開始數,數到3的那個人出隊。如下簡圖 這裡有兩個關鍵 1 建立迴圈佇列 不能有頭結點 2 隔m 1步取出該節點 程式如下 include using namespace std typede...