Traverse hash table calling the iterator procedure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hash_table), | intent(in) | :: | self | The hash_table. |
||
procedure(key_iterator_interface) | :: | iterator | The (key) iterator procedure to call for each node. |
subroutine traverse(self, iterator)
!---------------------------------------------------------------------------------------------------------------------------------
!< Traverse hash table calling the iterator procedure.
!---------------------------------------------------------------------------------------------------------------------------------
class(hash_table), intent(in) :: self !< The hash_table.
procedure(key_iterator_interface) :: iterator !< The (key) iterator procedure to call for each node.
integer(I4P) :: b !< Counter.
!---------------------------------------------------------------------------------------------------------------------------------
!---------------------------------------------------------------------------------------------------------------------------------
if (self%is_initialized_) then
do b=1, self%buckets_number
call self%bucket(b)%traverse(iterator)
enddo
endif
!---------------------------------------------------------------------------------------------------------------------------------
endsubroutine traverse