Java自定义实现链队列详解

  

<强>一,写在前面
  

  

,,,,,,,,数据结构中的队列应该是比较熟悉的了,就是先进先出,因为有序故得名队列,就如同排队嘛,在对尾插入新的节点,在对首删除节点.jdk集合框架也是提供也一个队列的接口。这个接口代表一个队列。顺序队列:ArrayBlockingQueue LinkedBlockingQueue。(上面两种是足色队列)还有一种是ConcurentLinkedQueue。
  底层的实现由数组合链表两种的,数组的实现会有个弊端的,会造成假满的现象,开始的时候,队列为空的时候,对首引用变量个对尾的引用变量都为null,随着删除队列的元素,就会发生面前+ 1,后面等于底层数组的容量了。在顺序的存储结构中,前面总是保存这着队列中即将出队列的元素的索引,后方总是保存着即将进入队列的元素的索引。队列中的元素的个数就是rear-front的。在顺序的队列中,底层是数组,所以保存的数据元素是不会改变的,改变的只有后面和前面这两个引用变量。
  ,,,,,,,这里采用链式存储可以有效的利用空间的,就是引用变量要占用额外的空间的。
  

  

队列的常用的操作:
  

  

,,,,,,,,,,,,1:初始化
  ,,,,,,,,,,,,2:返回队列的长度
  ,,,,,,,,,,,3:添加元素
  ,,,,,,,,,,,4:删除元素
  ,,,,,,,,,,,5:访问对首的元素
  ,,,,,,,,,,,6:访问队列的对尾的元素
  ,,,,,,,,,,,7:判断队列是否为空
  ,,,,,,,,,,,8:清空队列
  

  

<强>二,自定义的实现
  

  

源码展示的比较清楚,就不用再多做介绍
  

        公开课LinkedQueuelQueue=new LinkedQueue ();   lQueue.add (“aaa”);   lQueue.add (" bbb ");   lQueue.add (“ccc”);   lQueue.add (ddd);   System.out.println(“返回队列的头结点的数值:”+ lQueue.elementFront ());   System.out.println(“返回队列的尾节点的数值:”+ lQueue.elementRear ());   System.out.println (lQueue.length ());   System.out.println (lQueue);   }   }      

运行结果:

Java自定义实现链队列详解