/*
* 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...