前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArrayList和LinkedList分别实现堆栈和队列对比

ArrayList和LinkedList分别实现堆栈和队列对比

作者头像
一觉睡到小时候
发布2019-07-04 17:21:47
1.2K0
发布2019-07-04 17:21:47
举报
文章被收录于专栏:国产程序员

队列(Queue)是限定所有的插入只能在表的一端进行,而所有的删除都在表的另一端进行的线性表。 表中允许插入的一端称为队尾(Rear),允许删除的一端称为队头(Front)。按先进先出(FIFO)的原则进行的。

ArrayList的方式实现队列:

/** * Created with IntelliJ IDEA. * User: lida * Date: 2018/6/6 * ArrayList的方式实现队列

*/ public class MyQueue { private ArrayListlist = new ArrayList(); //入队 public void push(Object o){ list.add(o); } //出队 public void pop(){ Object o=null; if(!list.isEmpty()){ for (Objectobj : list) { System.out.println(obj); } }else{ return; } } //获取队列长度 public int getMyQueueLength(){ return list.size(); } //判断队列是否未空 public boolean isMyQueueEmpty(){ return list.isEmpty(); } public static void main(String[] args) { MyQueue myQueue=new MyQueue(); myQueue.push("1"); myQueue.push("2"); myQueue.push("3"); myQueue.pop(); } }

LinkedList的方式实现队列:

/** * Created with IntelliJ IDEA. * User: lida * Date: 2018/6/6 * linkedList的方式实现队列 */ public class MyQueue { LinkedList<Object> linkedList=new LinkedList<Object>(); //入队 public void push(Object o){ linkedList.addLast(o); } //出队 public Object pop(){ return linkedList.removeFirst(); } public Objectpeek(){ return linkedList.getFirst(); } //判断队列是否未空 public boolean isMyQueueEmpty(){ return linkedList.isEmpty(); } public static void main(String[] args) { MyQueue myQueue=new MyQueue(); myQueue.push("1"); myQueue.push("2"); myQueue.push("3"); myQueue.pop(); System.out.println(myQueue.peek()); System.out.println(myQueue.isMyQueueEmpty()); } }

栈(Stack)也是一种特殊的线性表,是一种后进先出(LIFO)的结构。 栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶(top)表头称为栈底(bottom)。

用LinkedList实现堆栈

/** * Created with IntelliJ IDEA. * User: lida * Date: 2018/6/6 * To change this template use File |Settings | File Templates. */ public class MyStack { LinkedList<Object> linkedList=new LinkedList<Object>(); //入栈 public void push(Object o){ linkedList.add(o); } //出栈 public Object pop(){ return linkedList.remove(); } //查看栈顶元素 public Object peek(){ return linkedList.getFirst(); } //判断是否为空 public boolean isMyStackEmpty(){ return linkedList.isEmpty(); } public static void main(String[] args) { MyStack myStack=new MyStack(); myStack.push("1"); myStack.push("2"); myStack.push("3"); myStack.push("4"); System.out.println(myStack.peek()); myStack.pop(); System.out.println(myStack.peek()); myStack.pop(); myStack.pop(); myStack.pop(); System.out.println(myStack.isMyStackEmpty()); } }

用ArrayList实现堆栈

/** * Created with IntelliJ IDEA. * User: lida * Date: 2018/6/6 * To change this template use File |Settings | File Templates. */ public class MyStack { private ArrayListlist=new ArrayList(); //入栈 public void push(Object o){ list.add(o); } //出栈 public void pop(){ Object o=null; if(!list.isEmpty()){ o=list.get(list.size()-1); System.out.println(o); list.remove(o); }else{ return; } } //判断是否为空 public boolean isMyStackEmpty(){ return list.isEmpty(); } public static void main(String[] args) { MyStack myStack=new MyStack(); myStack.push("1"); myStack.push("2"); myStack.push("3"); myStack.push("4"); //myStack.pop();//输出一个 while (!myStack.isMyStackEmpty()){ myStack.pop();//输出全部 } System.out.println(myStack.isMyStackEmpty()); } }

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 国产程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档