zoukankan      html  css  js  c++  java
  • 数据结构——队列链表实现

    队列抽象数据结构之一,遵循FIFO原则,通过在初始化时构造队首和队尾两个引用(指针)指向一个空节点,作为空队列的标志

    package com.shine.test.datastruct;
    
    import java.util.EmptyStackException;
    
    public class LinkQueue<E> {
    	
    	private Node front,tail;
    	class Node {
    		E data;
    		Node next;
    	}
    	
    	public LinkQueue() {
    		 LinkQueue<E>.Node node = new Node();
    		 node.data = null;
    		 node.next = null;
    		 front = tail = node;
    	}
    	
    	public boolean push(E e) {
    		LinkQueue<E>.Node temp = new Node();
    		temp.data = e;
    		temp.next = null;
    		tail.next = temp; //当加入第一个元素是应为tail和front指向同一个对象 所以此时相当于front.next =temp,但以后不是
    		tail = temp;
    		if(temp != null) {
    			return true;
    		}
    		return false;
    	}
    	
    	public E pop() {
    		if(front == tail) {
    			throw new EmptyStackException();
    		}else {
    			LinkQueue<E>.Node temp = front.next; 
    			E e = temp.data;
    			front.next = temp.next;
    			
    			if(tail == temp) { //当队列中只有一个元素时 需要将队列置空
    				tail = front;
    			}
    			return e;
    		}
    				 
    	}
    	public E peek() {
    		if(front == tail) {
    			throw new EmptyStackException();
    		}else {
    			LinkQueue<E>.Node temp = front.next; 
    			E e = temp.data;
    			
    			return e;
    		}
    				 
    	}
    }
    

      

  • 相关阅读:
    第十二周总结
    第十一周课程总结
    第十周第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周&java实验报告四
    第五周课程总结&试验报告(三)
    学期总结
    十四周总结
  • 原文地址:https://www.cnblogs.com/lihuiupupup/p/8859082.html
Copyright © 2011-2022 走看看