본문 바로가기
자료구조 | 알고리즘

[자료구조]스택

by hans-j 2023. 1. 18.

스택

LIFO(Last In First Out)이라는 개념을 가진 선형 자료구조다.

프링글스 통을 생각하면 된다.

 

스택을 구현하기 위해서는 스택의 상단에만 있는 요소에 접근할 수 있기 때문에

마지막으로 삽입되는 요소인 스택의 상단에 대한 포인터를 유지해야 한다.


push() : 요소를 스택에 삽입

begin
 if stack is full
    return
 endif
else  
 increment top
 stack[top] assign value
end else
end procedure

pop() : 스택에서 요소를 제거

begin
 if stack is empty
    return
 endif
else
 store value of stack[top]
 decrement top
 return value
end else
end procedure

top() : 스택의 최상위 요소를 반환

begin 
  return stack[top]
end procedure

isEmpty(): 스택이 비어 있으면 true를 반환하고, 그렇지 않으면 false를 반환

begin
 if top < 1
    return true
 else
    return false
end procedure

 


size() :  스택의 크기를 반환


 

스택은 배열로 표현할 수 있다.

 

스택은 연결 리스트로 표현할 수 있다.

 

array가 가변으로 동작하고 스택과 동일하게 사용이 가능하기 때문에 굳이 연결 리스트로 구현할 필요는 없다

 


https://www.geeksforgeeks.org/stack-data-structure/

 

Stack Data Structure - GeeksforGeeks

A descriptive page for Stack Data Structure for enthusiast who want to learn what is stack, implementations of stack, and standard coding problems on stack.

www.geeksforgeeks.org

https://school.programmers.co.kr/learn/courses/13213/13213-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B4%91%ED%83%88-%EB%B0%A9%EC%A7%80-a-to-z-javascript

 

코딩테스트 광탈 방지 A to Z : JavaScript

코딩테스트 광탈 방지 A to Z : JavaScript 자료구조와 알고리즘 기본기를 다지고 문제 풀이 꿀팁까지 한 번에 가져가요! 자료구조와 알고리즘 기초부터 코딩 테스트 대표 유형 문제 풀이까지 “A to Z

school.programmers.co.kr

 

'자료구조 | 알고리즘' 카테고리의 다른 글

[자료구조]해시 테이블  (0) 2023.03.02
[자료구조] 큐  (0) 2023.02.28
[자료구조]연결리스트  (0) 2023.01.18
[알고리즘]시간 복잡도  (0) 2023.01.18
자료구조와 알고리즘의 차이점은?  (0) 2023.01.18