본문 바로가기

Programming/JavaScript tips

Stack Data Structure(스택 자료구조)

1. 스택(Stack) 이란?

한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) or FILO(First In Last Out) 형식의 자료구조

 

장점:

  • 구현이 쉽다.
  • 원하는 데이터의 접근 속도가 빠르다.

단점:

  • 데이터의 최대 개수를 미리 정해야 한다.
  • 추가/삭제가 어렵다.

 

 

2. 스택의 활용

  • 재귀 알고리즘
  • 실행 취소
  • 역순 문자역 만들기
  • 수식의 괄호 검사
  • 미로 찾기
  • 컴퓨터 메모리 관리 등

 

3. 구현을 위한 의사코드(Pseudo Code)

1. 데이터를 담을 수 있는 객체 생성
2. 데이터의 추가/삭제 등 스택구조에 맞는 메소드함수를 만든다.
    2-1. push(date) : 데이터가 추가되는 순서에 따라 다음 키값을 지정해준다.
    2-2. pop() : 스택의 마지막 값을 가져와 삭제한다.
    2-3. peek() : 스택의 마지막 값을 가져온다.
    2-4. clear() : 스택을 전체를 비운다.(스택내 전체 데이터 삭제)
    2-5. isEmpty() : 스택내 데이터가 비어 있는지 확인한다.
    2-6. length() : 스택에 들어있는 데이터의 수를 가져온다.

 

4. 참고자료(References)

https://monsieursongsong.tistory.com/4
https://monsieursongsong.tistory.com/7
https://gmlwjd9405.github.io/2018/08/03/data-structure-stack.html
https://blog.naver.com/PostView.nhn?blogId=javaking75&logNo=220226369586&categoryNo=71&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView&userTopListOpen=true&userTopListCount=5&userTopListManageOpen=false&userTopListCurrentPage=1
https://goodgid.github.io/Data-Structure-Pros-And-Cons/