본문 바로가기
🗂️CS & Other/자료구조 (data structure)

[자료구조] 스택(Stack)

by inbeom 2023. 8. 28.
728x90
스택은 “쌓다” 라는 의미로 데이터를 차곡차곡 쌓아 올린 형태의 자료구조 이다.

 

💡 스택의 특징

  • 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 추출 할 수 있음.
  • Last In First Out (후입선출) 구조.
  • 가장 최근의 자료를 찾아오거나 히스토리를 유지하고 무를 때 사용할 수 있음.
  • 함수의 메모리는 호출 순서에 따른 stack구조.
  • jdk 클래스 : Stack

 

import array.MyArray;

public class MyArrayStack {

	int top;
	MyArray arrayStack;

	public MyArrayStack()
	{
		top = 0;
		arrayStack = new MyArray();
	}

	public MyArrayStack(int size)
	{
		arrayStack = new MyArray(size);
	}

	public void push(int data)
	{
		if(isFull()){
			System.out.println("stack is full");
			return;
		}

		arrayStack.addElement(data);
		top++;
	}

	public int pop()
	{
		if (top == 0){
			System.out.println("stack is empty");
			return MyArray.ERROR_NUM;
		}
		return arrayStack.removeElement(--top);

	}

	public int peek()
	{
		if (top == 0){
			System.out.println("stack is empty");
			return MyArray.ERROR_NUM;
		}
		return arrayStack.getElement(top-1);
	}

	public int getSize()
	{
		return top;
	}

	public boolean isFull()
	{
		if(top == arrayStack.ARRAY_SIZE){
			return true;
		}
		else return false;
	}

	public boolean isEmpty()
	{
		if (top == 0){
			return true;
		}
		else return false;
	}

	public void printAll()
	{
		arrayStack.printAll();
	}
}

 

 

728x90