|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- void main(){
- CLinkList *list,*head,*temp;
- list=(CLinkList*)malloc(sizeof(CNode));
- head=list;//暂存头节点
- list->data=0;
- list->next=head;
- for(int i=1;i<=41;i++){
- CLinkListAdd_wei(list,i);//尾插法初始化循环链表
- }
- for(int i=1;i<=41;i++){
- list=list->next;
- }//list后移到最后一个节点
- temp=list;//temp指向尾节点(即头结点前一节点)
- list=head;//list重新指向头结点
- int i=1;
- while(list->next!=list){
- if(list->data==0){//删除头结点和已经自杀的节点
- temp->next=list->next;//工作指针后移
- list=list->next;
- //懒得free了
- continue;
- }else if(i%3==0){
- printf("%d ",list->data);//输出自杀的人
- list->data=0;
- }
- temp=list;//重新指向list前一节点
- list=list->next;//工作指针后移
- i++;//计数器
- }
- printf("%d",list->data);//输出最后一个,因为只剩最后一个节点时已跳出循环
- }
复制代码
后期可以通过宏定义实现任意人数和间隔的问题。 |
|