"Адское" программирование Ada-95 -Компилятор GNAT

         

Структуры данных со ссылками на себя



Структуры данных со ссылками на себя

В предыдущих примерах мы рассмотрели то как размещать обычные типы данных в динамической области памяти и выполнять их инициализацию.Однако, для того чтобы строить сложные динамические структуры данных (списки, деревья, графы...) необходима возможность описания структур данных которые могут ссылаться сами на себя, то есть требуется создание ссылки на структуру данных, которая еще не существует (не описана).

Ада позволяет решить подобную проблему осуществляя неполное описание типа.При неполном описании просто указывается имя типа, который еще не описан.После этого компилятор ожидает, что полное описание типа будет дано до завершения файла с исходным текстом:

type Element; -- неполное описание типаtype Element_Ptr is access Element;type Element is -- полное описание типа record Value : Integer; Next : Element_Ptr; end record;Head_Element : Element_Ptr; -- переменная которая будет началом списка

Теперь мы можем построить простой связанный список,

началом которого будет переменная Head_Element, следующим образом:

Head_Element := new Element'( Value => 1, Next => (new Element'( Value => 2, Next => (new Element'( Value => 3, Next => null)))));

Данный список содержит всего три элемента (узла). Следует обратить внимание на то, что в последнем элементе списка ссылка Next имеет значение null.



Содержание раздела








Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий