Языки программирования - концепции и принципы

в языках допускается задавать частичное


Для решения этой проблемы в языках допускается задавать частичное объявление записи, в котором указывается имя ее типа. Объявление сопровождается объявлением указателя, ссылающегося на это имя, а далее следует полное объявление записи, в котором уже можно ссы­латься на тип указателя. В языке Ada эти три объявления выглядят так:

type Node;                                         -- Незавершенное объявление типа     

Ada

type Ptr is access Node;                    -- Объявление типа указателя

type Node is                                      -- Полное объявление

      record

        Data: Integer;                            -- Данные в узле

        Next: Ptr;                                   -- Указатель на следующий узел



      end record;

Язык С требует использования тега структуры и альтернативного синтаксиса для объявления записи:

C

typedef struct node *Ptr;                             /* Указатель на структуру с тегом */

typedef struct node {                                   /* Объявление структуры узла*/

           int       data;                                       /* Данные в узле */

           Ptr      next;                                       /* Указатель на следующий узел */

} node;

В C++ нет необходимости использовать typedef, поскольку struct определяет как тег структуры, так и имя типа:

C++

typedef struct node *Ptr;                             /* Указатель на структуру с тегом */      

struct node {                                               /* Объявление структуры узла */

int        data;                                                /* Данные в узле */

Ptr         next;                                              /* Указатель на следующий узел */

}

Алгоритмы для прохождения (traverse) структур данных используют перемен­ные-указатели. Следующий оператор в С — это поиск узла, поле данных кото­рого содержит key:

C

<

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