#include <stdio.h>
#include <stdlib.h>
3:
/*链表结点定义*/
struct node {
/*编号*/
/*个人密码*/
struct node *next;
9: } LNode, *LinkList;
10:
11:
int e2) {
13: LinkList p;
sizeof(LNode));
15: p->number = e1;
16: p->psw = e2;
17:
if(!*list) {
19: *list = p;
20: p->next = NULL;
21: }
else {
23: p->next = q->next;
24: q->next = p;
25: }
26: }
27:
28:
29:
int n)
31: {
32: LinkList q = NULL , list = NULL;
int i , e2;
);
35:
for(i = 0; i < n; i++) {
, &e2);
/*向q指向的结点后面插入新的结点*/
39:
/*第一次之生成头结点,q也指向头结点*/
/*q指向下一结点*/
42: }
43:
/*形成循环链表*/
45:
//返回
47: }
48:
49:
int m)
51: {
52: LinkList p , q;
int i;
54: q = p = *jsp ;
55:
/*q指向p的前一个结点*/
57:
) ;
59:
while(p->next != p) {
for(i = 0; i < m - 1; i++)
/*p指向要删除的结点,q指向p的前一个结点*/
63: q = p;
64: p = p->next;
65: }
66:
67: q->next = p->next;
, p->number);
69: m = p->psw;
70: free(p);
71: p = q->next;
72: }
73:
/*打印出最后留在队中的人的编号*/
75: }
76:
int main()
78: {
79: LinkList jsp;
int n , m;
);
, &n) ;
83: CreatJoseph(&jsp, n);
);
, &m) ;
86: exJoseph(&jsp, m) ;
87: }