💡스택의 특징💡

  • 맨 마지막 위치(top)에서만 자료를 추가,삭제, 꺼내올 수 있음 ( 중간의 자료를 꺼낼 수 없음)
  • Last In First Out ( 후입선출 ) 구조
  • 택배 상자가 쌓여있는 모양
  • 가장 최근의 자료를 찾아오거나 게임에서 히스토리를 유지하고 이를 무를때 사용할 수 있음
  • 데이터의 순서를 반대로 뒤집고 싶으면 스택에 넣고 뺌
  • 함수의 메모리는 호출 순서에 따른 stack 구조
  • jdk 클래스 : Stack

스택의 메서드

  • boolean empty()
  • Object peek()
  • Object pop()
  • Object push(Object item)
  • int search(Object o)

요소를 넣고자 하는 경우 - push

  • 맨 마지막에만 넣을 수 있다
  • 스택이 꽉 차있을 경우 오류, 아닐 경우 addElement로 data 추가
public void push(int data){                  
    if (isFull()){                           
        System.out.println("Stack is Full"); 
        return;                              
    }                                        
    arrayStack.addElement(data);             
    top++;                                   
}                                            

요소를 삭제하고자 하는 경우 - pop

  • 맨 마지막 요소만 삭제할 수 있다
  • 스택이 비어있을 경우 오류, 아닐 경우 removeElement로 삭제
public int pop(){                                 
    if (isEmpty()){                               
        System.out.println("Stack is Empty");     
        return MyArray.ERROR_NUM;                 
    }                                             
    return arrayStack.removeElement(--top); // top-1 하고 그걸 삭제    
}                                                 

요소를 하나 선택할 경우(삭제 x) - peek

  • 맨 마지막 요소만 선택(출력)할 수 있다
  • 스택이 비어있을 경우 오류, 아닐 경우 getElement로 불러옴
public int peak(){                               
    if (isEmpty()){                               
        System.out.println("Stack is Empty");     
        return MyArray.ERROR_NUM;                 
    }                                             
    return arrayStack.getElement(--top);
}                                                

스택이 비었는지 꽉 차있는지 확인하는 메서드 - empty

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

스택의 활용

  • 수식 계산
  • 수식 괄호 검사
  • 워드 프로세서의 undo/redo
  • 브라우저의 뒤로 앞으로
profile
안녕하세요. Chat JooPT입니다.

0개의 댓글