圆圈中最后剩下的数字(循环链表) 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目: 0,1...,n-1这n个数字排成一个圆圈, 从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里最后剩下的数字.使用循环链表, 依次遍历删除, 时间复杂度O(mn), 空间复杂度O(n).代码:/*
* main.cpp
*
* Created ...
分类:
编程语言 时间:
2014-07-13 16:15:24
阅读次数:
226
目 录1、顺序表. 1Seqlist.h 1Test.cpp 62、单链表. 8ListNode.h 8SingleList.h 10test.cpp 203、双向链表. 22NodeList.h 22DoubleList.h 24Test.cpp 344、循环链表. 36ListNode.h 36...
分类:
编程语言 时间:
2014-07-06 20:14:46
阅读次数:
315
双向循环链表的实现2013-01-11 09:29:04 我来说两句 作者:坚持理想_面对现实收藏我要投稿在使用链表来解决约瑟夫问题的时候,用到了循环链表。循环链表又分为单向循环链表与双向循环链表,约瑟夫问题采用单项循环链表可以得到很好的而解决了,但是单向链表的很大的缺陷仍然存在,那就是在删除的时....
分类:
其他好文 时间:
2014-07-03 06:12:32
阅读次数:
308
LinkedList简介
LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列来使用。
LinkedList同样是非线程安全的,只在单线程下适合使用。
LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。
LinkedList源码剖析
LinkedList的源码如下(加入了比较详细的注释):...
分类:
编程语言 时间:
2014-07-01 09:55:43
阅读次数:
283
《STL源码剖析》中,指出SGI STL的list底层数据结构式循环双向链表,并且在链表尾端留一个空白节点,让end指向它。由于是双向的,那么list的迭代器必须是Bidirectional Iterator类别的。
下面,分别验证vs2010下和code blocks(gcc)下,list的底层实现是否是循环链表。
#include
#include
using namesp...
分类:
其他好文 时间:
2014-06-30 00:21:54
阅读次数:
202
如果在单链表或头指针表示的链表上操作这个比较消耗性能,因为都需要遍历第一个链表,找到an,然后将b1链接到an的后面,时间复杂度是:O(n)。若在尾指针表示的单循环链表上实现,则只需改变指针,无需遍历,时间复杂度是:O(1)
现在看算法实现,需要4个主要步骤,都注释了:
LinkList Connect(LinkList A,LinkList B){
//假设A,B为非空循环链表的尾指针...
分类:
其他好文 时间:
2014-06-29 22:33:08
阅读次数:
319
LinkedList是List接口的子类,它底层数据结构是双向循环链表。LinkedList还实现了Deque接口(double-end-queue双端队列,线性collection,支持在两端插入和移除元素).所以LinkedList既可以被当作双向链表,还可以当做栈、队列或双端队列进行操作......
分类:
其他好文 时间:
2014-06-25 11:50:14
阅读次数:
251
相对于数组来说: 优点: 通过索引(数组下标)快地访问数组元素; 缺点: 插入/删除元素需要对数组进行调整, 效率低;而链表: 优点:插入/删除速度快而且用对整链表进行调整; 缺点:只能进行顺序访问能随机访问(像数组样用下标);所链表些需要快速插入/删除而太关心或者需要随机访问情况下使用.u...
分类:
其他好文 时间:
2014-06-25 00:54:25
阅读次数:
270
数据结构采用双向循环链表。由候选角色组成链表的节点,将链表中的节点在屏幕上按照椭圆分布。.h: 1 //链表节点——候选角色 2 class CandidateRole :public CCNode{ 3 public: 4 CandidateRole(); 5 ~Candidate...
分类:
其他好文 时间:
2014-06-22 13:08:07
阅读次数:
506