1. 进制转换
//进制转换
void stack_zhuanhuan(StackP S)
{
int num;
int a = 0;
printf("输入十进制");
scanf("%d",&num);
while(num)
{
stack_push(S,num%2);
num = num/2;
a++;
}
printf("二进制\n");
while(a)
{
stack_pop(S);
a--;
}
putchar(10);
}
2. 约瑟夫环问题
//约瑟夫环
void josephus(Looplink L){
if(NULL==L){
printf("链表不合法");
return ;
}
int i=0;
Looplink p=L;
while(p->next !=L){
p=p->next;
}
p->next=L->next;//将头结点和循环链表隔离开
while(p->next->next!=p){
if(i+1==3){
printf("%d\n",p->next->data);
free(p->next);
p->next=p->next->next;
i=0;
}
p=p->next;
i++;
}
printf("%d\n%d\n",p->data,p->next->data);
}
3. 思维导图