//进制转换
int stack_zhuanhuan(Stackptr S,datatype e)
{
if(NULL==S)
{
printf("转换失败\n");
return 0;
}
datatype x=0;
while(e>0)
{
x=e%2;
stack_push(S,x);
e/=2;
}
stack_show(S);
return 1;
}
ubuntu@ubuntu:栈.c$
约瑟夫环
//约瑟夫环
void list_huan(Looplink L,datatype e)
{
if(NULL==L||list_empty(L))
{
printf("运转失败\n");
}
Looplink p=L;
Looplink q;
datatype n = L->len;
for(int i=0;i<n;i++)
{
for(int j=0;j<e-1;j++)
{
p=p->next;
if(p==L)
{
j--;
}
}
q=p->next;
if(q==L)
{
q=L->next;
p=L;
}
printf("%d\n",q->data);
p->next=q->next;
free(q);
L->len--;
}
}