오늘은 선형자료구조인 스택의 개념 및 arrayList를 통해서 stack을 간단히 구현 그리고 마지막으로 stack함수에는 어떤 것들이 있는 지 알아보는 시간을 가지려고 한다.
ㆍStack의 개념
- 데이터를 차곡차곡 쌓아 올리는 형태의 자료구조
- "Last In, First Out" (LIFO) : 가장 나중에 추가된 데이터가 가장 먼저 제거되는 원리
ㆍ스택의 구성
- Push
데이터를 스택에 추가하는 작업, data는 스택의 최상단에 추가 - Pop
스택에서 데이터를 제거하는 작업, 가장 최근에 추가된 data가 제거 - Top
스택의 최상단에 위치한 데이터, 이는 가장 최근에 추가된 데이터를 가리키는 위치
ㆍArrayList로 Stack구현
import java.util.ArrayList;
public class StackActive {
ArrayList arr;
StackActive() {
arr = new ArrayList();
}
public static void main(String[] args) {
StackActive stack = new StackActive();
stack.push(1);
stack.push(10);
stack.push(100);
stack.push(1000);
stack.push(10000);
stack.printStack();
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.peek());
stack.printStack();
}
private boolean isEmpty() {
if (arr.size() == 0) {
return true;
}
return false;
}
private void push(int data) {
arr.add(data);
}
private Integer pop() {
Integer value = null;
if (arr.size() != 0) {
value = (int)arr.remove(arr.size() - 1);
}
return value;
}
private Integer peek() {
Integer value = null;
if (arr.size() != 0) {
value = (int)arr.get(arr.size() - 1);
}
return value;
}
private void printStack() {
for (Object value : arr) {
System.out.print((int)value + " ");
}
System.out.println();
}
}
ㆍStack함수
- E push(E item)
- 스택에 요소를 추가 - E pop()
- 스택의 맨 위에 있는 요소를 제거하고 반환 - E peek()
- 스택의 맨 위에 있는 요소를 반환, (제거 x) - boolean empty()
- 스택이 비어있는지 여부를 확인.
- 비어 있으면 true를 반환하고, 그렇지 않으면 false를 반환. - int search(Object o)
- 스택에서 지정된 요소를 찾고, 요소의 위치를 반환
- 스택의 맨 위에 있는 요소가 1의 위치, 그 아래로 순서대로 증가
- 요소를 찾지 못하면 -1을 반환
'Algorithms > 개념' 카테고리의 다른 글
배열과 연결리스트로 Tree 구현 및 기본 개념 정리 (0) | 2024.03.06 |
---|---|
ArrayList를 이용한 Deque구현 및 기본 개념 정리 (0) | 2024.03.06 |
ArrayList를 이용한 Queue구현 및 기본 개념 정리 (0) | 2024.03.06 |
연결리스트 구현 및 기본 개념 정리 (0) | 2024.03.06 |
자바 배열을 활용한 ArrayList 구현 및 기본 개념 정리 (0) | 2024.03.06 |