数据逻辑结构:指线性表、栈、队列、树、图这种数据结构。数据存储结构:以下四种常见---------1、顺序存储:插入删除麻烦2、链式存储:访问指定元素难====================================================3、索引存储: key---value 形式...
分类:
其他好文 时间:
2015-08-21 13:22:02
阅读次数:
97
栈、队列、链表都有他们各自的好处,同样的也有弊端的存在。
如果我想要一个有序的数组和链表这个当然很好实现。现在我要在这几个数据结构中查找一个值。先说数组,因为是有序的通过二分查找很快的就可以找到。查找的效率还是很高的,但如果要是插入呢,为了保证有序,我要先找到插入位置,然后再将比插入数字大的数字依次向后移动;这时的第一反应就是链表!他打插入速度很快,只要改变指针的指向就可以了。但是链表大查找要从头开始找啊。只有知道了前一个元素的地址才能知道下一个地址。所以链表查找起来又费劲了。这时候就有人引进了...
分类:
编程语言 时间:
2015-08-20 13:12:44
阅读次数:
132
如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。要特别注...
分类:
编程语言 时间:
2015-08-17 21:17:31
阅读次数:
119
jdk1.8.0_45源码解读——LinkedList的实现一、LinkedList概述 LinkedList是List和Deque接口的双向链表的实现。实现了所有可选列表操作,并允许包括null值。 LinkedList既然是通过双向链表去实现的,那么它可以被当作堆栈、队列或双端队列进行操作。.....
分类:
其他好文 时间:
2015-08-17 18:54:12
阅读次数:
126
LinkedList类的强大,既能看做队列,也能看做栈,很好的体现了队列,栈和集合的关系和区别的例题...
分类:
其他好文 时间:
2015-08-14 19:13:41
阅读次数:
132
实现使用两个堆栈队列FIFO队列是一种数据结构(FIFO),后堆叠前进出的数据结构的(FILO)。两个栈实现的最简单的方法就是排队:队列中的第一个推栈,队列将数据顺序的第一个堆栈推入第二堆叠,然后叠加.两个规则:1)进队列,则直接压入第一个栈2)出队列,若果第二个栈不为空。直接pop(),如过第二个...
分类:
其他好文 时间:
2015-08-12 21:36:47
阅读次数:
120
单链式结构是相当普遍的一种结构。它不但被广泛地用来实现单链表,栈,队列等数据结构,而且还是谭浩强先生《C程序设计》中唯一介绍到的数据结构——这充分体现了此数据结构结构的广泛性与实用性。设我们的结构是这样的:1 template 2 struct node {3 value val;4 nod...
分类:
编程语言 时间:
2015-08-11 23:00:47
阅读次数:
229
ACM 所有算法
数据结构
栈,队列,链表
哈希表,哈希数组
堆,优先队列
双端队列
可并堆
左偏堆
二叉查找树
Treap
伸展树
并查集
集合计数问题
二分图的识别
平衡二叉树
二叉排序树
线段树
一维线段树
二维线段树
树状数组
一维树状数组
N维树状数组
字典树
后缀数组,后缀树
块状链表
哈夫曼树
桶,跳跃表...
分类:
编程语言 时间:
2015-08-11 16:13:16
阅读次数:
357
栈是一种特殊的线性表,它只在线性表的一端进行插入和删除操作。栈中允许插入、删除的这一端称为栈顶,另一个固定端称为栈底。当表中没有元素时称为空栈。其特点是先进后出或后进先出。 队列是一种只允许在标的一端插入,在另一端删除的存取首先得线性表。允许插入的一端称为队尾,允许删除的一端称为对头;不含...
分类:
其他好文 时间:
2015-08-10 22:01:47
阅读次数:
122
类似于链表和堆栈,队列也是存储数据的结构。队列中数据进入队列的顺序很重要,一般来说,队列就是一群人或者事物按照排好的顺序等待接受服务或者处理。 定义:队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允...
分类:
其他好文 时间:
2015-08-10 10:35:07
阅读次数:
245