使用LinkedList来模拟堆栈或队列数据结构

本文介绍了LinkedList作为Java集合中的高效容器,它适用于构建堆栈和队列。LinkedList提供了getFirst、getLast、peekFirst、peekLast等方法,可用于模拟堆栈和队列的操作。在模拟队列时,需要实现构造函数、添加元素、取出元素以及检查容器是否为空的功能。通过实际的代码示例和运行结果验证了模拟的正确性。

 

   最近一直在学习集合,其中使用比较多的就是LinkedList,那么什么是LinkedList呢。在list中共有三种容器,LinkedList是容器的一种,具体介绍如下,

List:
|--Vector:组数据结构,是同步的(效率低,几乎不用),可增长。增删查询都很慢!
|--LinkedList:内部是数组数据结构,是不同步的(效率高),大小可变的,代替了Vector。查询速度快
|--ArrayList:内部是数链接列表实现(链表数据结构)。是不同步的(效率高),增删速度快。有角标,
但底层是链表结构

其中,LinkedList有很多方法,比如

getFirst(),if is empty ,throw NoSuchElementException
getLast(),if is empty ,throw NoSuchElementException

peekFirst(),if is empty ,return null
peekLast(),if is empty,return null;

removeFirst(),removeLast(), offerFirst(),offerLast() and so on~~~~

使用这些方法,就可以完成一个功能,使用LinkedList来模拟堆栈或队列数据结构,这也是笔试中的题,首先,什么是“堆栈或队列”呢。

 

/*
 * 请使用LInkedList来模拟堆栈或队列数据结构。
 * 
 * 堆栈:后进先出 first in last out(FILO)
 * 
 * 队列:先进先出first in first out(FIFO)
 * 
 * 我们应该描述这样一个容器,给使用提供一个容器对象完成这两种结构中的一种
 */

然后,如果是写一个队列的话,它得有自己的构造函数,当执行的时候可以自动创建一个LinkedList容器,还必须有添加、取出元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值