1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念.和栈相对应,在许多算法设计中,需要一种"先进先出(First Input First Output)"的数据结构,因而一种被称为"队列(Queue)"的数据结构被抽象了出来(因为现实中的队列,就是先进先出的). 队列是一种线性表,将线性表的一端作为队列的头部,而另一端作为队列的尾部.队列元素从尾部入队,从头部出队(尾进头出,先进先出). 双端队列(Double end Queue)是一种特殊的队列结构,…
/*用链表实现的队列--使用的是双端链表 *注意:空指针错误肯定是引用没有指向对象 * */ public class MyLinkedQueue { private MyFirstAndLastLinkedList list; private int items; public MyLinkedQueue() { list = new MyFirstAndLastLinkedList(); items = 0; } public boolean isEmpty(){ return list.i…
1.继续学习单链表,终于摆脱数组的魔爪了,单链表分为数据域(前突)和引用域(指针域)(后继),还有一个头结点(就好比一辆火车,我们只关心火车头,不关心其它车厢,只需知晓车头顺藤摸瓜即可),头结点没有前突,尾结点没有后继,注意不是前仆后继. public class Node {//包装车厢 /** * 人无完人,如有bug,还请斧正 */ public long data;// 数据域 public Node next;// 指针域,后指针 public Node previous;// 指针域…