This module implements a dynamical list, in which elements can be added or removed dynamically. It assumes that there is a maximum size, and elements can be added or removed up to that size. Example:
program test_dynamical_list
use datastructs_fortran
use kinds_mod
implicit none
type(dynamical_list_t) :: my_list
integer(kind=i4) :: i
call my_list%init(10)
do i = 1, 10
call my_list%add(i)
end do
call my_list%print()
call my_list%remove(5)
call my_list%print()
end program test_dynamical_list
Constructor for a dynamical list
Create a new dynamical list Input: list - an array of integers Output: a new dynamical list
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=i4), | intent(in) | :: | list(:) |
List of integers with a given maximum fixed size The first index is always 1, and filled up to n_used It contains routines for managing the list
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=i4), | public | :: | n | = | 0 | ||
integer(kind=i4), | public | :: | n_used | = | 0 | ||
integer(kind=i4), | public, | allocatable | :: | list(:) |
final :: finalize_dynamical_list |
procedure, public :: init => dynamical_list_init | |
procedure, public :: reset => dynamical_list_reset | |
procedure, public :: print => dynamical_list_print | |
procedure, public :: expand => dynamical_list_expand | |
procedure, public :: trim => dynamical_list_trim | |
procedure, public :: last => dynamical_list_last | |
procedure, public :: count => dynamical_list_count | |
generic, public :: add => dynamical_list_add_element, dynamical_list_add_array | |
generic, public :: remove => dynamical_list_remove_position, dynamical_list_remove_position_array, dynamical_list_remove_position_range | |
generic, public :: assignment(=) => dynamical_list_create_from_array | |
procedure, public :: get => dynamical_list_get | |
procedure, public :: sum => dynamical_list_sum |