Я хотел бы использовать связанные списки в Fortran для хранения массива данных неопределенной длины.
У меня следующая настройка:
TYPE linked_list
INTEGER :: data
TYPE(linked_list) :: next_item => NULL()
END TYPE
Теперь предположим, что я создаю такой список:
TYPE(LINKED_LIST) :: example_list
example_list%data =1
ALLOCATE(example_list%next_item)
example_list%next_item%data = 2
ALLOCATE(example_list%next_item%next_item)
example_list%next_item%next_item%data = 3
У меня вопрос, если я выполню:
DEALLOCATE(example_list)
будут ли все вложенные уровни также освобождены или мне нужно пройти по списку к самому глубокому элементу и освободить от самого глубокого элемента вверх?