虽然在java.util包中有Stack,但是不赞成使用。建议使用如下的Stack !!!
先看看是如何实现的:
package com.wjy.linkedlist.stack; import java.util.LinkedList; public class Stack<T> { private LinkedList<T> storage=new LinkedList<T>(); public void push(T t){ storage.addFirst(t); } public T peek(){ return storage.getFirst(); } public T pop(){ return storage.removeFirst(); } public boolean isEmpty(){ return storage.isEmpty(); } public String toString(){ return storage.toString(); } }
看看测试代码:
package com.wjy.linkedlist.stack; public class MainTest { public static void main(String args[]){ Stack<String> myStack=new Stack<String>(); for(String item : "hello my baby".split(" ")){ myStack.push(item); } while(!myStack.isEmpty()){ System.out.println(myStack.pop()); } } } /*output baby my hello ///
//********************************************************************************************************************************
先看看最普遍的Queue,是java.util包中的。需要LinkedList来实例化它:
package com.wjy.linkedlist.queue; import java.util.LinkedList; import java.util.Queue; public class QueueTest { public static void main(String args[]){ Queue<String> myQueue=new LinkedList<String>(); for(String item : "hello my baby".split(" ")){ myQueue.offer(item); } while(!myQueue.isEmpty()){ System.out.println(myQueue.poll()); } } }
运行结果:
hello my baby
以上是普通的队列。
注意注意:想想这样一种情况,在飞机场,当飞机临近起飞时,这架飞机的乘客可以插队先行登机。所以PriorityQueue就是为了这种情形设计的。
但是注意:Integer,String和Character可以和PriorityQueue一起使用的原因是:这些类已经内建了自然排序。如果你想在PriorityQueue中使用自己的类,就必须包括额外的功能以产生自然排序,或者必须提供自己的Comparator。
看看PriorityQueue的使用:
package com.wjy.priorityQueue; import java.util.PriorityQueue; public class PriorityQueueTest { public static void main(String args[]){ PriorityQueue<String> myQueue=new PriorityQueue<String>(); for(String item : "hello my baby".split(" ")){ myQueue.offer(item); } while(!myQueue.isEmpty()){ System.out.println(myQueue.poll()); } } } /*Output: baby hello my ///
相关推荐
java中List、LinkedList、Stack、Queue的简单使用,详情查看API
csci 211 作业 1 简单链接数据结构 截止日期:20131 年 10 月 14 日,星期一 该作业提供 Eclipse 调试器、JUnit 测试、测试驱动开发和实现链接数据结构的接触和经验。 概述 该作业要求您实现和测试堆栈、队列、双向...
LinkedList同时实现了List接口和Deque接口,也是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直是个全能。当你需要使用栈或者队列时,可以...
算法和数据结构是有趣且实用的 Data Structure Array Stack / Queue PriorityQueue LinkedList Queue / Priority queue Stack Tree / Binary Search Tree HashTable Disjoint Set Trie BloomFilter LRU Cache ...
您必须只使用队列的标准操作——这意味着只有向后推、从前面查看/弹出、大小和为空操作是有效的。 根据您的语言,队列可能不受本机支持。 您可以使用列表或双端队列(双端队列)来模拟队列,只要您仅使用队列的标准...
普林斯顿算法课程视频资源,这是一门经典的数据结构与算法课,免费,分上下两部分,上部分内容包括Union-Find, basic data structures(Array, LinkedList, Queue, Stack, prioprity queue, symbol table...), ...
数据结构主题: 单链表队列和堆栈双链表二叉搜索树相关代码挑战问题伸展目标: LRU缓存堆AVL树完成要求模块1:使用内置的Python列表以及您在模块1指导项目期间创建的Node和LinkedList类,实现Stack和Queue类。...
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java集合详解5:深入...
算法 顾名思义,算法存储库包含对编码面试中提出的各种常见... 它提供了LinkedList、Stack、Queue、BinaryTree、Graph等各种数据结构的实现,也提供了一些著名的常用算法,如排序、字符串操作、数组问题和线程编程。
LinkedList Queue接口Deque 接口 AbstractQueue 抽象类LinkedList ArrayDeque PriorityQueue 反射的思想及作用 反射的基本使用 获取类的 Class 对象构造类的实例化对象获取-个类的所有信息 获取类中的变量(Field) ...
Java集合详解:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解:Queue和LinkedList Java集合详解:迭代器,快速失败机制与比较器 Java集合详解:HashMap和HashTable Java集合详解:深入理解...
本程式库希望收集各种常用的资料结构方便使用, 程式全用c++写成 基础资料结构 收集一般资料结构课程会学到的东西 资料结构/演算法 程式 可参考题目(验证程式正确性) 二分搜索 排序问题 Heap LinkedList LinkedList ...
【队列Queue】队列 Queue、双端队列 DeQueue、循环队列 CircleQueue、双端循环队列 CircleDeque 源码实现(Java) 【栈Stack】栈 Stack 源码 【二叉搜索树BST】二叉搜索树 BST 实现源码 【AVL树】AVLTree 实现源码 ...
java arraylist源码数据结构算法 使用Java编程语言的数据结构和算法源代码(包括Stack,LinkedList,ArrayList,Queue和Binary Tree)
约瑟夫环 leetcode ...LinkedList双向链表实现解决约瑟夫环问题 04-栈 Stack利用java组合实现栈 05-队列 Queue队列实现 Deque双端队列实现 CircleQueue环形队列实现 CircleDeque环形双端队列实现 06-二叉树
链表(LinkedList) 单向链表 双向链表 循环链表 静态链表 栈(Stack) 队列(Queue) 双端队列(Deque) 循环队列 哈希表(HashTable) 树形数据结构 二叉树(BinaryTree)、二叉搜索树(BinarySearchTree、BST) ...
ArrayDeque实现了Deque接口,LinkedList实现了Deque,List接口 (1)对比: ArrayDeque 为数组结构,插入元素不能为null,无法确定数据量时,后期扩容会影响效率 LinkedList 链表结构,插入元素不能为null,无法确定...
1.tree 2.queue 3.stack 4.hash 5.linkedList 欢迎大家关注,私戳免费可以获取
实现堆栈和队列 - StackQueue.java 使用 min 函数实现堆栈 - StackWithMin.java 桶排序 - bucketSort.java finobacci 序列 - fibonacci.java 查找树是否平衡 - isBalanced.java 实现归并排序 - merge
2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 ...