Algorithm/04. 스택과 큐

4-1. 스택(Stack)

찹키리 2020. 10. 17. 12:40

<스택>

: 데이터를 일시적으로 저장하기 위한 자료구조로, 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다. (LIFO, Last Input First Out)

 

*푸시(push): 스택에 데이터를 넣는 작업

*팝(pop): 스택에서 데이터를 꺼내는 작업

 

 

 

 

 

・스택 만들기

 

1. 생성자 IntStack

: 스택 본체용 배열을 생성하는 등 준비 작업 수행

 

1
2
3
4
5
6
7
8
9
public IntStack(int capacity) {
        ptr = 0;
        max = capacity;
        try {
            stk = new int[max];
        } catch(OutOfMemoryError e) {
            max = 0;
        }
}

 

 

 

2. 푸시 메서드 push

: 데이터를 푸시하는 메서드

 

1
2
3
4
5
public int push(int x) throws OverflowIntStackException {
        if(ptr == max)
            throw new OverflowIntStackException();
        return stk[ptr++= x;
    }

 

 

 

3. 팝 메서드 pop

: 스택의 꼭대기에서 데이터를 팝하고 그 값을 반환

 

1
2
3
4
5
public int pop() throws EmptyIntStackException {
        if(ptr <= 0)
            throw new EmptyIntStackException();
        return stk[--ptr];
    }

 

 

 

4. 그 외

 

-피크 메서드 peak

: 스택의 꼭대기에 있는 데이터를 '몰래 엿보는' 메서드

 

 

-검색 메서드 indexOf

:스택 본체의 배열 stk에 x와 같은 값의 데이터가 포함되어 있는지, 포함되어 있다면 배열의 어디에 들어 있는 지 조사

 

 

-스택의 모든 요소를 삭제하는 메서드 clear

 

 

-용량을 확인하는 메서드 capacity

:max의 값 그대로 반환

 

 

-데이터 수를 확인하는 메서드 size

: 현재 스택에 쌓여 있는 데이터 수(ptr)를 반환

 

 

-스택이 비어 있는지 검사하는 메서드 IsEmpty

: 스택이 비어 있으면 true, 그렇지 않으면 false 반환

 

 

-스택이 가득 찼는지 검사하는 메서드 Full

 

 

-스택 안에 있는 모든 데이터를 표시하는 메서드 dump

: 스택에 쌓여 있는 모든 데이터를 바닥에서 꼭대기 순으로 표시

'Algorithm > 04. 스택과 큐' 카테고리의 다른 글

4-2. 큐(Queue)  (0) 2020.10.23