스택
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/
'자료구조 | 알고리즘' 카테고리의 다른 글
[자료구조]해시 테이블 (0) | 2023.03.02 |
---|---|
[자료구조] 큐 (0) | 2023.02.28 |
[자료구조]연결리스트 (0) | 2023.01.18 |
[알고리즘]시간 복잡도 (0) | 2023.01.18 |
자료구조와 알고리즘의 차이점은? (0) | 2023.01.18 |