1. 程式人生 > >連結串列實現佇列(java實現)

連結串列實現佇列(java實現)

package shuju_arguments;
/**
 * 
 * 使用連結串列資料結構來實現佇列
 * **/
public class queue {
	//對頭指標
	private node<Integer> first;
	//隊尾指標
	private node<Integer> last;
	//佇列元素的數量
	private int num;
	//隊頭出元素
	public int pop(){
		node<Integer> oldNode = first;
		first = oldNode.nest;
		int nums = oldNode.items;
		oldNode = null;
		num--;
		return nums;
	}
	//隊尾新增元素
	public void add(Integer items){
		node<Integer> oldNode = last;
		node<Integer> newNode = new node<>();
		last = newNode;
		//判斷佇列中是否一個元素都沒有,if判斷語句是為了防止
		//對內沒有元素而引發的空指標異常
		if(first == null){
			first = last;
		}else{
			oldNode.nest = newNode;
		}
		newNode.items = items;
		newNode.nest = null;
		num++;
	}
	//遍歷佇列中的元素
	public void iterator(){
		for(node node = first;node != null;node = node.nest){
			System.out.println(node.items);
		}
	}
	public static void main(String[] args) {
		queue queue = new queue();
		System.out.println("入隊");
		queue.add(1);
		queue.add(2);
		queue.add(3);
		queue.add(4);
		queue.iterator();
		System.out.println("出隊後佇列中剩餘:");
		queue.pop();
		queue.pop();
		queue.pop();
		queue.iterator();


	}

}