用循环链表解决Josehus问题
#include <iostream> using namespace std; struct CirLinkNode { int data; struct CirLinkNode *link; CirLinkNode(CirLinkNode *next = NULL):link(next) { } CirLinkNode(int d, CirLinkNode *next = NULL):data(d), link(next) { } }; class CircList { public: CircList() { head = NULL; } void create(); CirLinkNode* getHead() { return head; } private: CirLinkNode* head; }; void CircList::create() { CirLinkNode *rear = NULL, *temp; int n; cin>>n; while(n != 0) { temp = new CirLinkNode(n); if (head == NULL) { head = temp; rear = temp; }else { rear->link = temp; rear = temp; } cin>>n; } rear->link = head; }