数据结构学习笔记(3)---循环链表(约瑟夫环问题)
来源:互联网 发布:库存管理 php 源代码 编辑:程序博客网 时间:2024/06/05 02:36
最近学习循环链表,其实循环链表的本质和单向链表没有多大区别的,只是在创建时把最后的指针指向头结点,但是当想用循环链表解决约瑟夫环的问题时,要去掉头结点。
(1)循环链表的创建
void CreateCircleList(pCircleNode pHead){ int date; cout << "请输入节点得值:"; cin >> date; pCircleNode pTail = pHead; while (-1 != date) { pCircleNode pNew = new CircleNode; pNew->next = NULL; pNew->date = date; pTail->next = pNew; pTail = pNew; cout << "请输入节点得值:"; cin >> date; } pTail->next = pHead->next;}
(2)显示循环链表
void ShowList(pCircleNode pHead){ pCircleNode p = pHead->next; do { cout << p->date<<" "; p = p->next; } while (p != pHead->next); cout << endl;}
(3)用循环链表解决约瑟夫环问题
pCircleNode Joseph(pCircleNode pHead, int n){ pCircleNode p = pHead; pCircleNode pPre = NULL;; while (p->next != pHead) { p = p->next; }//找到第一个节点的前置节点 pPre = p; p = pHead; pHead = NULL; while (p->next != p)//判断是否还剩最后一个节点 { int nPos = 1; while (nPos != n)//到达指定位置 { pPre = p; p = p->next; nPos++; } pCircleNode pDelete = pPre->next; pPre ->next = pPre->next->next; delete pDelete; p = pPre->next;//别忘记对p赋值 } return p;}
阅读全文
0 1
- 数据结构学习笔记(3)---循环链表(约瑟夫环问题)
- 菜鸟学习数据结构算法之路之约瑟夫环问题(循环链表)
- 数据结构(循环链表)实现约瑟夫问题
- 约瑟夫环问题(循环链表)
- 约瑟夫环问题(循环链表)
- 约瑟夫环问题(循环链表)
- 约瑟夫环问题(循环链表)
- 约瑟夫环问题(循环链表)
- 数据结构之线性表——约瑟夫环问题(循环链表的应用)
- 程序员面试宝典之数据结构基础----循环链表(约瑟夫环问题)
- 数据结构与算法(4、约瑟夫环问题到循环链表)
- 数据结构-约瑟夫环的简单实现(循环链表)
- 数据结构 循环链表之约瑟夫问题
- 企业级数据结构-循环链表(约瑟夫问题)
- 数据结构 循环链表的应用:约瑟夫环问题
- 数据结构:循环链表求解约瑟夫环问题
- 数据结构(三):循环单链表解决约瑟夫问题
- 数据结构与算法学习笔记04(约瑟夫问题)
- 百度API 常用接口demo
- 习题 7.10 写一个函数,输入一行字符,将此字符串中最长的单词输出。
- 使用连接池一定要正确关闭PreparedStatement和ResultSet
- node.js之前后端交互小样例
- Docker搭建Laravel开发环境
- 数据结构学习笔记(3)---循环链表(约瑟夫环问题)
- 1504:重叠面积
- MUI——页面的创建、显示、关闭
- 虚症的虚指什么
- 【安全牛学习笔记】Linux缓冲区溢出
- 基于socket.io即时通讯IM实现,webRTC实现视频通话
- Android编程Day1--图形界面设计
- Oracle创建同义词
- 1125:杨辉三角