报数—循环链表
来源:互联网 发布:免费行业报告下载知乎 编辑:程序博客网 时间:2024/06/06 00:16
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};void creatlist(ListNode *&phead,int &n){ if(n<=99){ phead=(struct ListNode *)malloc(sizeof(struct ListNode)); phead->val=n; n++; creatlist(phead->next,n); } else if(n==100){ phead=(struct ListNode *)malloc(sizeof(struct ListNode)); phead->val=n; phead->next=NULL; }}void outlist(ListNode *phead){ if(phead!=NULL){ cout<<phead->val; outlist(phead->next); }}void outlist2(ListNode *phead,int &nn){ if(nn!=0){ cout<<phead->val<<" "; nn--; outlist2(phead->next,nn); }}void creatyuan(ListNode *phead){ ListNode *start=phead; while(start->next!=NULL){ start=start->next; } start->next=phead;}void delete1(ListNode *&phead,int &nnn,int &length,int num){ if(length>=num){ if(nnn!=num-1){ nnn++; delete1(phead->next,nnn,length,num); } else{ length--; nnn=1; phead->next=phead->next->next; delete1(phead->next,nnn,length,num); } } else{ outlist2(phead, length); }}int main(){ int num; cin>>num; if(num<=1||num>=100){ cout<<"ERROR!"; } else{ ListNode *phead=NULL; int n=1; creatlist(phead,n);//建立100次链表 //outlist(phead); cout<<endl; creatyuan(phead);//建立环形链表 int nn=10; //outlist2(phead,nn);//测试 cout<<endl; int nnn=1; int length=100; delete1(phead,nnn,length,num);//核心 } return 0;}
阅读全文
0 0
- 报数—循环链表
- POJ 3750 小孩报数问题(模拟/数据结构—循环链表)
- poj 3750 小孩报数问题(循环链表)
- CSDN 报数游戏-双向循环链表实现
- 循环报数
- 循环报数
- 循环报数
- 循环报数问题
- 圆圈循环报数
- 循环删除报数问题
- 循环报数问题
- java 循环报数
- 循环报数游戏
- 约瑟夫循环报数问题
- 循环链表解决Josephus环轮流报数问题
- 用循环链表解决报数淘汰问题
- 单向循环链表队列,从头开始报数,当报到m或者m的倍数的元素出列
- 华为上机题,循环报数
- 单例模式
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- Mybatis传参与返回值
- SSM框架搭建简单的前后台分离项目(前台篇)
- Mybaits根据数据库表自动生成entity,dao,mapper相关配置文件
- 报数—循环链表
- Java知识:初识集合类
- PHP 正则表达式匹配 preg_match 与 preg_match_all 函数
- Chrome学习笔记(二):UI组件,皮肤引擎 —— 基础设施篇
- Jsp使用<c:forEach>遍历List集合
- ios 安装yasm(转)
- GYM 100488 Yet Another Goat in the Garden
- 纯CSS实现垂直居中的几种方法
- Java从服务器下载文件到本地