8月8日作业

思维导图

 1、使用单向循环链表完成约瑟夫环问题

	//判断逻辑
	if(NULL == L){
		printf("链表有问题\n");
		return;
	}
	if(num<1){
		return;
	}
	//插入count个数据
	for(int i=0;i<count;i++){
		printf("请输入第%d位成员:\n",i+1);
		int e;
		scanf("%d",&e);
		list_insert_tail(L, e);
	}
	//输出
	Looplink q = L;
	while(!list_empty(L)){
		for(int j=0;j<num-1;j++){ //q移动到要出列的前一位
			if(q->next==L){    //当碰到L时,将q向后移一位
				q=q->next;
			}
			q=q->next;
		}
		printf("%d",q->next->data);//出列
		q->next = q->next->next;//将q连接到出列的下一位
		L->len--;
	}	
	printf("\n");
}

代码现象

2、使用栈的操作完成进制转换问题,例如输入一个十进制数据,程序输出该数据的二进制数

//实现十进制转二进制
void stack_bin(StackPtr S, int num){
	//转换逻辑
	while(num/2!=0){ //num<2
		stack_push(S, num%2); //求余入栈
		num = num/2; 
	}
	stack_push(S, num); //将最高位入栈
	stack_show(S); //遍历
}

代码现象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值