Quick actions

cmd+k|ctrl+k

Navigation

Languages

0418StringQueue

Snippet info

Language

Java

Visibility

public

Author

mhcrnl

Created

2018-09-27T15:24:32Z

Updated

2018-09-27T15:25:56Z

import java.util.EmptyStackException;

class Main {
    public static void main(String[] args) {
        StringQueue.main(args);
    }
}

class StringQueue {
	private Node front, rear;
	
	public static void main(String[] args) {
		String[] namesData = {"Aaron", "John", "Moe", "Alan", "Wendy", "Betsy"};
		StringQueue names = new StringQueue();
		for (String name : namesData)
			names.enqueue(name);
		
		while (!names.empty()) {
			String name = names.dequeue();
			System.out.println(name);
		}
		
	}
	
	public void enqueue(String data) {
		if (empty()) {
			rear = new Node(data);
			front = rear;
		} else {
			rear.next = new Node(data);
			rear = rear.next;
		}
	}
	
	public String dequeue() {
		if (empty()) {
			throw new EmptyStackException();
		} else {
			String value = front.data;
			front = front.next;
			if (front == null) {
				rear = null;
			}
			
			return value;
		}
	}
	
	public boolean empty() {
		return rear == null;
	}
	
	public String peek() {
		if (empty()) {
			throw new EmptyStackException();
		} else {
			return front.data;
		}
	}
	
}

class Node {
	String data;
	Node next;
	
	Node(String d, Node n) {
		data = d;
		next = n;
	}
	
	Node(String d) {
		this(d, null);
	}
}
INFO