반응형
Notice
Recent Posts
Recent Comments
Link
불로구
[ 자바 알고리즘/자료구조] - 스택 (Stack) <1> 본문
반응형
스택
- 데이터를 일시적으로 저장히기 위해 사용하는 자료구조
- 데이터의 I/O (입출력)은 LIFO( Last In First Out )구조
- 삽입(push) / 빼기(pop)
스택만들기
package 스택큐.스택;
class StackEx{
private int max; //스택 용량
private int ptr; //스택 포인터
private int[] st; //스택
//기본 생성자
public StackEx(int capacity) {
ptr = 0;
max = capacity;
try {
st = new int[max];
}catch(OutOfMemoryError e) {
max = 0;
}
}
//push(삽입)
public void push(int x){
if(ptr >= max) {
OverflowStack();
}else {
st[ptr++] = x;
}
}
//pop(추출)
public void pop() {
if(ptr <= 0) {
EmptyStack();
}else {
System.out.println(st[--ptr]);
}
}
//peek(맨 위 요소 확인)
public void peek(){
if(ptr <= 0) {
EmptyStack();
}else {
System.out.println(st[ptr - 1]);
}
}
//스택이 비었을 때
public void EmptyStack() {
System.out.println("비었음");
}
//스택 꽉 찼을 때
public void OverflowStack() {
System.out.println("꽉 참");
}
}
public class 스택 {
public static void main(String[] args) {
StackEx ex = new StackEx(3);
ex.push(15);
ex.push(7);
ex.push(12);
ex.push(25);
ex.pop();
ex.peek();
ex.pop();
ex.pop();
ex.pop();
ex.pop();
}
}
출력
====
꽉 참
12
7
7
15
비었음
비었음
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
JAVA 알고리즘 - 브루트포스 알고리즘을 이용한 문자열 검색 (0) | 2021.03.06 |
---|---|
[ 자바 알고리즘/자료구조] - 스택 (Stack) <2> (0) | 2021.02.16 |
[ 자바 알고리즘/자료구조] - 시간복잡도 && 공간복잡도 (0) | 2021.02.13 |
[ 자바 알고리즘/자료구조] - 자바 이진탐색 (0) | 2021.02.11 |
[ 자바 알고리즘/자료구조] - 자바 선형 검색(탐색) & 보초법 (0) | 2021.02.11 |
Comments