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

     在数据结构中,线性表是一种比较简单的数据存储方式。按照其物理与逻辑存储顺序,可以分为顺序表和链表。顺序表比较适合求表长,访问表中的元素可修改表中的元素。难于对表进行插入和删除。而链表正好与之相反。链表又可以分为单向链表与双向链表。双向链表解决了单链表不能查找表中元素的直接前驱问题,但是需增加内存存储,增加了空间的开销。顺序表和链表对应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其实是一种线程安全的,链式结构的双向队列。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liangqichan/article/details/51556033
个人分类: java
想对作者说点什么? 我来说一句

数据结构实验指导书

2011年12月30日 159KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭