|
- module CStack
- use CPath
- implicit none
- public
-
- type, public :: Stack
- type(Path) :: List
- contains
- procedure :: Clear => Clear
- procedure :: Push => Push
- procedure :: Pop => Pop
- procedure :: DoesHave => DoesHave
- end type Stack
- contains
-
- subroutine Clear(this)
- implicit none
- class(Stack), intent(inout) :: this
- call this%List%MakeNull()
- end subroutine
-
- subroutine Push(this, value)
- implicit none
- class(Stack), intent(inout) :: this
- integer, intent(in) :: value
- call this%List%Add(value)
- end subroutine
-
- subroutine Pop(this)
- implicit none
- class(Stack), intent(inout) :: this
- call this%List%Remove(this%List%Length())
- end subroutine
-
- logical function DoesHave(this, value)
- implicit none
- class(Stack), intent(in) :: this
- integer, intent(in) :: value
- DoesHave = this%List%Find(value)
- end function
-
- end module CStack
|