본문 바로가기
개발언어/JAVA

[JAVA] ArrayList를 이용하여 Stack, Queue 구현하기

by 코딩 시그널 2020. 3. 17.
반응형

오늘은 arrayList를 이용하여 자료 구조형 중 하나인 Stack와 Queue를 간단한 방법으로 구현해 보겠습니다.

 

Stack 

Stack은 Last In First Out(LIFO) 즉 맨 마지막에 추가된 요소가 가장 먼저 꺼내지는 자료구조입니다. 

import java.util.ArrayList;

class Stack {

	private ArrayList<String> arrayStack = new ArrayList<String>();
	public void push(String data) {
		arrayStack.add(data);
	}
    
	public String pop() {
		if(arrayStack.size()==0) {
			System.out.println("데이터가 존재 하지 않습니다.");
			return null;
		}
		return arrayStack.remove(arrayStack.size()-1);
	}
}
public class StackTest {

	public static void main(String[] args) {
		Stack stack = new Stack();
		stack.push("A");
		stack.push("B");
		stack.push("C");
		System.out.println(stack.pop());
		System.out.println(stack.pop());
		System.out.println(stack.pop());
		System.out.println(stack.pop());
	}

}


Queue 

Queue는 First In First Out(FIFO) 즉 먼저 저장된 자료가 먼저 꺼내지는 자료 구조를 말합니다.

 

import java.util.ArrayList;

class Queue{

	private ArrayList<String> arrayQueue = new ArrayList<String>();
	public void enqueue(String data) {
		arrayQueue.add(data);
	}
    
	public String dequeue() {
            if(arrayQueue.size()==0) {
                System.out.println("데이터가 존재 하지 않습니다.");
                return null;
            }
	    return arrayQueue.remove(0);
	}
}

public class QueueTest {
	
	public static void main(String[] args) {
		Queue queue = new Queue();
		queue.enqueue("A");
		queue.enqueue("B");
		queue.enqueue("C");
		System.out.println(queue.dequeue());
		System.out.println(queue.dequeue());
		System.out.println(queue.dequeue());
		System.out.println(queue.dequeue());
	}
	
}

댓글