第二章线性表
课本源码链接:https://pan.baidu.com/s/1rP5DpnsVAE9rqupQCS2_Lg
提取码:zgh1
课本的循环链表求解约瑟夫问题:
#include#include"CircList.h" using namespace std; template void Josephus(CircList & Js, int n, int m) {//这个算法无附加头结点 CircLinkNode * p = Js.Locate(1), * pre = NULL; int i, j; for (i = 0; i < n - 1; i++) { for (j = 1; j < m; j++) { pre = p; p = p->link; } cout << "出列的人是" << p->data << endl; if (pre == NULL) { return; }//取消对空指针NULL的引用 pre->link = p->link; delete p; p = pre->link; } }; int main() { CircList clist; int i, n, m; cout << "输入游戏者人数和报数间隔:"; cin >> n >> m; for (i = 1; i <= n; i++)clist.Insert(i); Josephus(clist, n, m); };



