자료구조

이정연·2023년 9월 5일
0

기본지식

목록 보기
10/10

Stack

  • 데이터를 순서대로 쌓는 구조임
  • 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근
  • LIFO(last in first out), FILO(first in last out)
  • 데이터 넣기(push), 데이터 꺼내기(pop)
Stack<Integer> stack = new Stack<>();

stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
----------------------------------------------
1제일 먼저 들어가고 4번이 마지막으로 들어감

스택이 빌 때까지 데이터를 빼낸다.
stack.pop();
stack.pop();
stack.pop();
stack.pop();

마지막부터 차례로 나오게 된다.

비어있는지 확인
stack.empty(); //true 반환

장점

  1. 후입선출의 구조를 가지기 때문에 저장된 데이터를 가져오는 속도가 매우 빠르다.
  • 데이터를 삭제하거나 삽입시 모든 데이터를 순회할 필요가 없기 때문에 빠르다.
  1. 자바는 스택을 기본 자료구조로 제공, 별도의 라이브러리나 모듈 설치가 필요 없다

단점

  1. 크기 제한이 없다
  • 크기가 제한되지 않기때문에 메모리 사용량이 불필요하게 증가할 수 있다.
  • 크기를 정하거나, 동적으로 크기를 조절하는 방법을 쓴다.
  1. Vector 클래스를 상속받아 구현되어있어 크기를 동적으로 조정하지 않는다.
  1. Vector 클래스에는 중간에 데이터를 삽입, 삭제할 수 있어서 사용에 주의가 필요하다.

사용

  • 브라우저의 뒤로가기 앞으로 가기 기능을 구현할 때 사용
  • 새로운 페이지에 접속할 때 현재페이지를 Prev Stack에 보관
  • 뒤로가기 할때ㅐ는 현재 페이지를 Next Stack에 보관하고 Prev Stack에 가장 나중에 보관된 페이지를 현재 페이지로 가져옴
profile
반갑습니다.

0개의 댓글