<스택>
: 데이터를 일시적으로 저장하기 위한 자료구조로, 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다. (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 |
---|