불로구

[ 자바 알고리즘/자료구조] - 스택 (Stack) <1> 본문

프로그래밍/알고리즘

[ 자바 알고리즘/자료구조] - 스택 (Stack) <1>

맹이맹이 2021. 2. 13. 21:18
반응형

스택

- 데이터를 일시적으로 저장히기 위해 사용하는 자료구조

- 데이터의 I/O (입출력)은 LIFO( Last In First Out )구조

- 삽입(push) / 빼기(pop)

왼(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
비었음
비었음
반응형
Comments