Stack

2023. 10. 16. 13:49· Algorithm & 자료구조/자료구조
목차
  1. Stack 이란 ?
  2. 스택 용어
  3. Stack 선언 
  4. 스텍 메소드 종류
  5. 스택 시간복잡도 Big O
반응형

Stack 이란 ?

스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 사전적 정의는 '쌓다' 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 구조로 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 

자료를 넣는것을 '밀어넣는다' 하여 push라고 하고 반대로 넣어둔 자료를 꺼내는 것을 pop이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 푸쉬한 자료부터 나오게 된다. 즉, 나중에 들어간 것이 먼저 나오는 LIFO(Last In First Out)의 형태를 띄고있다.

 

스택 용어

(1) 삽입 (Push) : Push는 스택의 구조상 최상 위에 데이터가 저장 됩니다.

(2) 삭제 (Pop) : Push와 반대로 데이터를 삭제하는 것을 Pop이라 합니다. Pop도 Push와 마찬가지로 최상위 데이터 위치에서 삭제가 됩니다.

(3) 읽기 (Peek) : 마지막 위치(top)에 해당하는 데이터를 읽습니다. 이 때, top의 변화는 없습니다.

 

Stack 선언 

import java.util.Stack;

Stack<Integer>stack = new Stack<Integer>(); // Integer타입 선언
Stack<Integer>stack = new Stack<>(); // 뒤의 타입 생략 가능
Stack<Character>stack = new Stack<>(); // Char 타입 선언
Stack<String>stack = new Stack<>(); // String 타입 선언

스텍 메소드 종류

메서드 설명
stack.push(1); 스택에 값 1 추가
stack.size(); 스택의 크기 출력
stack.empty(); 스택이 비어 있으면 true, 비어 있지 않으면 false를 반환
stack.peek(); 스택의 제일 상단에 있는(마지막으로 저장된) 요소를 반환
stack.pop(); 스택의 제일 상단에 있는(마지막으로 저장된) 요소를 반환후,
해당 요소를 스택에서 제거함. (값을 remove 할때 pop 을 사용하면된다.)
stack.search(1); 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환
이때 인덱스는 제일 상단에 있는(마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작함.
stack.contains(1); 스택에 1이 있으면 true, 없으면 false 를 반환

스택 시간복잡도 Big O

  • Insertion O(1)
  • Deletion O(1)
  • Search O(n)

삭제나 삽입시 맨 위에 데이터를 삽입하거나 삭제하기 때문에 시간복잡도는 늘 O(1) 의 시간복잡도를 가집니다. 하지만 특정 데이터를 찾을 때는 특정 데이터를 찾을 때까지 수행을 해야하므로 O(n) 의 시간 복잡도를 가집니다.

 


참고 링크 
https://velog.io/@sbinha/%EC%8A%A4%ED%83%9D-%ED%81%90

 

스택, 큐 (Stack, Queue)

 

velog.io

https://yunamom.tistory.com/232

 

[Java] Stack 클래스 설명 및 예제

✨Stack 이란 무엇인가요? 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 사전적 정의는 '쌓다' 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 구조로 그 접근 방법은 언제나 목록의 끝에

yunamom.tistory.com

 

728x90
반응형

'Algorithm & 자료구조 > 자료구조' 카테고리의 다른 글

Heap  (3) 2023.10.21
Linked List  (0) 2023.10.20
HashMap  (2) 2023.10.19
선형 자료구조 - 배열(Array)  (4) 2023.10.18
Queue  (1) 2023.10.17
  1. Stack 이란 ?
  2. 스택 용어
  3. Stack 선언 
  4. 스텍 메소드 종류
  5. 스택 시간복잡도 Big O
'Algorithm & 자료구조/자료구조' 카테고리의 다른 글
  • Linked List
  • HashMap
  • 선형 자료구조 - 배열(Array)
  • Queue
불타는고굼이
불타는고굼이
잡동사니 끄적끄적
불타는 고구미 담벼락잡동사니 끄적끄적
반응형
250x250
불타는고굼이
불타는 고구미 담벼락
불타는고굼이
전체
오늘
어제
  • 공부 및 정리 (231)
    • Language (10)
      • Java (2)
      • Javascript (6)
      • Python (1)
      • C,C++ (1)
    • Web (42)
      • Tomcat (2)
      • Spring (11)
      • Node (4)
      • react (5)
      • NestJS (2)
      • Elastic Search (1)
      • etc (14)
      • error (3)
    • AI (17)
      • AI 동향 (2)
      • LLM관련 (1)
      • RAG (5)
      • LangChain (8)
      • Llamaindex (1)
    • Tools (16)
      • eclipse (1)
      • STS (3)
      • Visual Studio Code (8)
      • git | github (3)
      • Notion (0)
      • etc (1)
    • DB (3)
      • MySQL (2)
      • MSSQL (1)
    • Android (24)
      • Kotlin (24)
      • etc (0)
    • Algorithm & 자료구조 (15)
      • 백준 (4)
      • 프로그래머스 (1)
      • 기초수학 (4)
      • 자료구조 (6)
    • Image Processing (16)
      • 세팅 (1)
      • 예제 (6)
      • Python2Cpp (8)
      • YOLO (1)
    • 취미 (77)
      • photo (5)
      • food (47)
      • travel (6)
      • walk&run (14)
      • ETC (5)
    • ETC (6)
      • 제로베이스 (3)
      • 멀티캠퍼스 (1)
      • 패스트캠퍼스 INNERCIRCLE (2)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • #홍대팝업스토어
  • #홍대푸드트립
  • #팝플리
  • Spring
  • #선유도역맛집 #돈웍 #서울고기맛집 #1인고기세트 #목살구이 #된장찌개맛집 #영등포구맛집 #혼밥맛집 #삼겹전문점 #덮밥맛집 #서울혼밥추천
  • #홍대나가노
  • #경주맛집 #황리단길맛집 #향화정 #경주한옥맛집 #경주육회물회 #꼬막비빔밥 #해물파전맛집 #경주가볼만한곳 #경주맛집추천 #경주현지맛집 #경주여행코스 #경주로컬맛집 #한식전문점 #블로그후기 #먹스타그램 #맛집기록 #경주한옥식당 #황리단길한식
  • #레트로카페
  • 백엔드
  • #홍대맛집
  • #나가노굿즈
  • #속초중앙시장 #속초시장맛집 #속초오징어순대 #속초튀김 #속초닭강정 #중앙닭강정 #속초떡볶이 #강원도시장 #속초간식투어 #속초여행코스
  • #elasticsearch설치 #dockerelasticsearch #검색엔진 #로컬서버구축 #elasticstack #검색솔루션 #elasticsearch보안
  • 제로베이스
  • #농담곰
  • #속초맛집 #속초문어국밥 #문어국밥 #문어비빔국수 #속초해장국 #강원도맛집 #속초여행맛집 #속초로컬맛집 #문어요리 #속초밥집
  • #에벌레라멘
  • #홍대라멘
  • #경주여행 #황리단길카페 #경주카페추천 #향미사 #경주가볼만한곳 #첨성대 #대릉원 #경주핫플 #경주감성카페 #황리단길맛집 #경주말거리 #경주핫스팟
  • #선유도맛집 #선유도역맛집 #선유도돈까스 #선유도회식 #내일식당 #내일다이닝 #대파안심돈까스 #돈까스맛집 #서울맛집추천 #영등포맛집 #혼밥추천 #회식장소추천 #맛집블로그 #블로그후기 #먹스타그램 #푸드로그 #맛집탐방
  • #멘지홍대점
  • #나가노마켓
  • #치이카와굿즈
  • #ai프로젝트 #dify #llm아키텍처 #ai서비스기획 #노코드ai #ai멘토링 #ai입문 #딥러닝 #머신러닝 #pm특강 #프로젝트관리 #초보ai개발자 #ai교육후기 #ai캠프후기 #ai기반서비스 #생성형ai #ai툴활용 #데이터기반서비스 #ai직무전환 #it비전공자 </p>
  • #나가노팝업
  • 개발자 #백엔드공부 #백엔드스쿨
  • java
  • #홍대캐릭터샵
  • #고미푸딩
  • #일본캐릭터

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
불타는고굼이
Stack
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.