VBA Macro/VBA Excel
[엑셀] VBA로 스택 구현
루아흐뉴마
2018. 1. 14. 16:31
반응형
S Y N O P S I S #VBA로 스택 구현하기
- VBA로 구현한 스택이다.
- 별 건 없다. 필요할 때 가져다 쓰려고 만들어봤다.
VBA Code
Option Explicit
Option Base 0
Const MAXI = 5 'stack 크기 설정
Dim myTop As Long
Sub myStack()
Dim myArr() As Variant
myTop = -1
ReDim Preserve myArr(MAXI) 'stack 크기만큼 배열 초기화
Call push(myArr, "아이템 1")
Call push(myArr, "아이템 2")
Call pop(myArr)
Call pop(myArr)
End Sub
Function push(ByRef fn_arr() As Variant, ByVal fn_item As Variant)
If myTop = MAXI Then 'top index가 스택의 끝이라면
MsgBox "OVER FLOW!"
Exit Function 'push 종료
Else
myTop = myTop + 1 'top index 증가
fn_arr(myTop) = fn_item 'push
push = fn_arr(myTop)
Debug.Print "PUSH: " & fn_arr(myTop)
End If
End Function
Function pop(ByRef fn_arr() As Variant)
If myTop < 0 Then 'top index가 0이면, 배열이 비어있으면
MsgBox "ARR IS EMPTY!"
Exit Function 'pop 종료
Else '비어있지 않으면
pop = fn_arr(myTop) '아이템 꺼내고
Debug.Print "POP: " & fn_arr(myTop)
myTop = myTop - 1 'top index 감소
End If
End Function
매크로 실행 동영상
없음.

반응형