[Java 언어 활용] 3.8 Stack 클래스
Java의 Stack 클래스는 자료구조 스택을 구현한 것입니다. 자료구조 스택은 LIFO(List In First Out, 후입선출) 형태로 자료를 보관하는 임시 버퍼입니다. 버퍼는 임시로 자료를 보관해 두었다가 필요할 때 꺼내 쓰는 저장소며 스택은 꺼내달라고 요청하면 가장 최근에 보관한 자료를 꺼내줍니다.
Java의 Stack 클래스에서는 일반적인 스택에 약속하고 있는 push 메서드와 pop 메서드를 제공하고 있으며 이 외에 peek, emptry 메서드 및 search 메서드를 제공합니다.
public void push(Element data);//순차보관
public Element pop();//가장 최근에 보관한 값 꺼내고 반환
public Element peek();//가장 최근에 보관한 값 단순 참조, 꺼내지 않음
public boolean empty(); //비어있는지 판별
public int search(Element data); //data를 보관한 순번 반환(1부터 시작)
push 메서드는 스택에 자료를 보관할 때 사용하는 메서드이며 pop 메서드는 가장 최근에 보관한 자료를 꺼낼 때 사용하는 메서드입니다. peek 메서드는 가장 최근에 보관한 자료를 단순 참조할 때 사용하며 empty 메서는 비어있는지 판별하는 메서드입니다. 그리고 search 메서드는 자료가 몇 번째에 있는지 순번을 반환합니다. 주의할 점은 search 메서드의 반환 값은 인덱스가 아니라 순번입니다. 따라서 2,3 순으로 자료를 보관할 때 search(3)의 결과는 2입니다.
다음은 스택을 사용한 예제 코드입니다.
▷ 소스 3.10 스택 사용 예
//스택 사용 예 import java.util.Stack; public class Program { public static void main(String[] args){ Stack stack = new Stack(); stack.push(3); //3 stack.push(2); //3, 2 System.out.println(stack.pop()); //2를 출력, 스택에는 3 stack.push(6); //3, 6 stack.push(8); //3, 6, 8 System.out.println(stack.peek()); //가장 최근에 보관한 값은 8 System.out.println(stack.search(6));//두 번째 보관한 요소임 while(stack.empty()==false){ System.out.println(stack.pop());//8, 6, 3 순으로 꺼냄 } } } |
▷ 소스 3.10 실행 결과
2 8 2 8 6 3 |
[그림 3.4] 소스 3.10 수행 과정(Loop 이전까지)
[그림 3.4]는 소스 3.10을 수행하는 과정을 도식화한 것입니다. while 문 이전까지의 모습을 표현한 것이며 참고하여 확인하시기 바랍니다.
'언어 자료구조 알고리즘 > 디딤돌 Java 언어 Part2 활용' 카테고리의 다른 글
[Java 언어 활용] 3.12 HashMap 클래스 (3) | 2016.12.16 |
---|---|
[Java 언어 활용] 3.11 Map 인터페이스 (0) | 2016.12.16 |
[Java 언어 활용] 3.10 HashSet 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.9 Queue 인터페이스 (0) | 2016.12.10 |
[Java 언어 활용] 3.7 LinkedList 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.6 ArrayList 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.5 Iterator 클래스 (0) | 2016.12.10 |
[Java 언어 활용] 3.4.2 Vector를 이용하여 인덱스로 관리하기 (0) | 2016.12.10 |
[Java 언어 활용] 3.4.1 Vector를 이용하여 특정 키 순으로 보관하기 (0) | 2016.12.10 |
[Java 언어 활용] 3.4 Vector 클래스 (0) | 2016.12.10 |