摘要: @SuppressWarnings("unchecked") public class CircleDeque<E> { private int front; private int size; private E[] elements; private static final int DEFAU 阅读全文
posted @ 2020-05-24 23:59 Jenne 阅读(208) 评论(0) 推荐(0)
摘要: 一、概念: 循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用 二、代码实现: @SuppressWarnings("unchecked") public class CircleQueue<E> { private int front; private i 阅读全文
posted @ 2020-05-24 23:58 Jenne 阅读(191) 评论(0) 推荐(0)
摘要: 一、相关概念: (Deque)双端队列能够在队头、队尾进行添加、删除等操作 二、接口设计: 三、代码实现 public class Deque<E> { private List<E> list = new LinkedList<>();//引入自己实现的类 public int size() { 阅读全文
posted @ 2020-05-24 23:42 Jenne 阅读(162) 评论(0) 推荐(0)
摘要: 一、什么是队列 队列是一种特殊的线性表,只能在头尾两端进行操作,特点是先进先出;就像排队买票一样,先来的先买 二、接口设计 三、代码实现 可以使用动态数组、链表等实现;这里两种实现栈与双向链表 1、栈 public class Queue { private Stack<Integer> inSta 阅读全文
posted @ 2020-05-24 23:36 Jenne 阅读(131) 评论(0) 推荐(0)
摘要: 一、什么是栈 栈是一种线性结构,栈的特点就是先进后出(FILO);就像弹夹装子弹一样,最先压进去的在最底下,最后才被射出。 二、相关接口设计 三、栈的实现 栈可以用之前的数组、链表等设计,这里我使用动态数组实现(在之前自己写的,不是jdk自带的) public class Stack<E> { pr 阅读全文
posted @ 2020-05-24 23:25 Jenne 阅读(138) 评论(0) 推荐(0)
摘要: 双向循环链表跟单向链表一样,都是头尾相连,不过单向是尾指向头,双向是头尾互相指,可以从前往后查,也可以从后往前查 无头结点的双向循环链表 public class CircleLinkedList<E> extends AbstractList<E> { private Node<E> first; 阅读全文
posted @ 2020-05-24 23:12 Jenne 阅读(172) 评论(0) 推荐(0)
摘要: 单循环链表与单链表的不同是,单循环链表尾结点的next指向第一个结点(或头结点) 代码: 无头结点: public class SingleCircleLinkedList<E> extends AbstractList<E> { private Node<E> first; private sta 阅读全文
posted @ 2020-05-24 22:53 Jenne 阅读(227) 评论(0) 推荐(0)
摘要: 在之前我们封装了一些操作在接口类中,并在抽象类实现了相同的方法。下面我们开始写代码: 无头结点单链表:(注意下面的AbstractList是之前抽取的类,不是java.util包下的类) public class SingleLinkedList<E> extends AbstractList<E> 阅读全文
posted @ 2020-05-24 22:41 Jenne 阅读(148) 评论(0) 推荐(0)