定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。首先:要决定使用链表结构实现还是顺序结构实现,对于顺序结构实现,当数据满的情况下进行Push时,需要开辟新的数组,进行复制,因此不能保证Push的时间复杂度为..
分类:
其他好文 时间:
2016-01-02 16:32:39
阅读次数:
255
昨天提到了用线性单链表实现直接插入排序,所以准备借此复习一下线性单链表的内容......(很惭愧,两个学期没再摸数据结构,记不得了) 线性单链表是一种非随机存取的存储结构。因为与顺序表不同的是,链表结构中结点的位置不是连续的,需要通过链表中的结构指针来单向指引(如果是双向链表,则是双向指引。)...
分类:
其他好文 时间:
2015-12-23 19:26:26
阅读次数:
149
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O⑴。使用链表结构可以克服数组链表需要预先知道数据大小的...
分类:
其他好文 时间:
2015-12-17 12:39:47
阅读次数:
150
LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明。 1.1...
分类:
其他好文 时间:
2015-12-15 00:51:21
阅读次数:
150
Redis之lists类型以及操作 ????list是一个链表结构,主要功能是push、pop,获取一个范围的所有值等等。操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。可以通过...
分类:
其他好文 时间:
2015-11-14 22:11:00
阅读次数:
314
前几天无意中看到LinkedList的部分源码,发现一个很有趣的问题,跟大家一起分享一下。 首先LinkedList底层实现是双向链表,这个毫无疑问,地球人都知道,这就使得LinkedList有了链表结构的一些特性,我们在根据下...
分类:
其他好文 时间:
2015-11-10 16:28:40
阅读次数:
351
前言单向链表查找下一个元素很方便,要查找上一个元素时,需要从头开始向下遍历,很是麻烦。如何解决这个问题呢?使用双向链表结构可以解决这个问题。双向链表在单向链表的基础上,增加一个指向上一个节点的指针,这就形成了双向链表结构。因增加了一个指针域,故需要占用更多的内存空间,换就话说,用空间换时间。现在硬件...
分类:
其他好文 时间:
2015-10-25 14:53:57
阅读次数:
202
链表是一种重要的数据结构,在程序设计中占有很重要的地位。C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构。Java语言中的对象引用实际上是一个指针(本文中的指针均为概念上的意义,而...
分类:
其他好文 时间:
2015-10-16 23:13:12
阅读次数:
177
集合框架Collection|--List集合,元素是有序的(存入和取出的顺序),且可以有重复元素,因为该集合体系有索引。|--ArrayList集合,底层数据是数组结构,特点:查询快,增删慢。线程是不同步。|--LinkedList集合,底层数据是链表结构,特点:增删快,查询慢。线程不同步|--Vecto..
分类:
编程语言 时间:
2015-10-09 18:24:25
阅读次数:
200
实现原理为蛇的身体每一个节点添加脚本BodyFollow,使其能跟随父节点移动和设置它的子节点 1 public class BodyFollow : MonoBehaviour { 2 3 //下一个节点. 4 public BodyFollow next; 5 6 /...
分类:
其他好文 时间:
2015-10-07 16:04:06
阅读次数:
170