JAVA源码中线性表,栈和队列的实现及其对应的源码文件

原创 2016年06月01日 15:28:38

     在数据结构中,线性表是一种比较简单的数据存储方式。按照其物理与逻辑存储顺序,可以分为顺序表和链表。顺序表比较适合求表长,访问表中的元素可修改表中的元素。难于对表进行插入和删除。而链表正好与之相反。链表又可以分为单向链表与双向链表。双向链表解决了单链表不能查找表中元素的直接前驱问题,但是需增加内存存储,增加了空间的开销。顺序表和链表对应JAVA中的java.util这个包中的两个类,分别是ArrayList类和LinkedList类的实现。栈和队列是两种特殊的线性表,栈遵循的是先进后出的原则,队列是先进先出的原则。在JAVA中,提供两种栈给开发者使用,一种是java.util.Stack.还有一种我们分析LinkedList中的源码时可以发现,该类也包含有pop.push.peek等方法。因此也可以用LinkedList类来构造栈。有一个区别是java.util.Stack来构造栈时可以适用于多线程,而java.util.LinkedList构造栈多线程访问时是不安全的,可使用Collection类中的方法改进。

J   DK虽然提供了stack类,但是不推荐开发者使用这个古老的栈,而是使用deque接口实现的类来构造栈。deque提供了arrayDeque,LinkedBlockingDeque和LinkedList这三个实现类。其中arrayDeque代表顺序存储结构的双向队列,linkedList则代表链式存储结构的双向队列,linkedblockingDeque其实是一种线程安全的,链式结构的双向队列。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

(8) Java源码分析 ---- LinkedList (对应数据结构中线性表中的双向循环链表,JDK1.6)

一、源码解析 1、 LinkedList类定义 2、LinkedList数据结构原理 3、私有属性 4、构造方法 5、元素添加add()及原理 6、删除数据remove() 7、数据获取get() 8...

(7) java源码分析------之ArrayList (对应数据结构中线性表中的顺序表,JDK1.6)

ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素、灵活的设置数组的大小......     认真阅读本文,我相信一定会对你有帮助。比如...

线性表的6种结构JAVA源码.rar

  • 2009年09月28日 22:15
  • 19KB
  • 下载

线性表顺序表示及实现源码

  • 2011年11月11日 23:43
  • 8KB
  • 下载

动态顺序 线性表 的实现源码

    用c实现的顺序线性表,大部分源码来自于学校的教学资料,如果造成侵权,请作者联系我:)我进行了完善与部分修改,因水平有限,错误难免,随着以后功力的加深,还会不断进行修改完善。/** Copyri...

线性表的顺序存储结构(c语言源码实现)

线性表的顺序存储结构(c语言源码实现)、 #include "stdio.h" #include "stdlib.h" #include "io.h" #incl...
  • ygzk123
  • ygzk123
  • 2015年10月20日 15:15
  • 1262

线性表(C++)源码

  • 2009年11月26日 00:15
  • 2KB
  • 下载

2-1-单链表顺序存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

严蔚敏吴伟民版《数据结构》课本源码第2章线性表第1节单链表顺序存储结构。...

线性表操作 c源码及一些应用

  • 2011年05月16日 11:04
  • 262KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA源码中线性表,栈和队列的实现及其对应的源码文件
举报原因:
原因补充:

(最多只允许输入30个字)