packagecom.wck.test83;/**
* 自定义队列
* @author kun
* @date 2021年8月3日
*/publicclassMyqueue{privatestaticclassNode{Object item;Node next;}privateNode first;// 队列中的第一个privateNode last;// 队列中的最后一个privateint size;publicbooleanisEmpty(){return size==0;}publicintgetSize(){return size;}/**
* 当前指定的Object添加至当前队列中
* @param item
*/publicvoidenqueue(Object item){Node old= last;// 获取最后一个Node
last=newNode();// 新建Node,作为最后一个节点
last.item= item;// 设置最后一个Node的元素(作为最后一个)if(isEmpty()){// 如果为空, 则是第一次入队
first= last;}else{
old.next= last;// 反之设置将最后一个Node设为前一个的下一个Node}
size++;}// 出队publicObjectdequeue(){if(isEmpty()){returnnull;}Object item= first.item;// 获取第一个元素
first= first.next;// 第一个元素后面的元素提升为第一if(isEmpty()){// 如果后面没有元素, 则设为null
last=null;}--size;// 元素数量减1return item;}}
实现类:
packagecom.wck.test83;publicclass quenuImp{publicstaticvoidmain(String[] args){Myqueue queue=newMyqueue();
queue.enqueue(111);
queue.enqueue(222);
queue.enqueue("aaa");
queue.enqueue("bbb");
queue.enqueue("ccc");
queue.enqueue("ddd");
queue.enqueue("eee");int size= queue.getSize();for(int i=0; i< size; i++){System.out.print(queue.dequeue()+"\t");}System.out.println();}}