Линейный список

Связанные динамические данные

Несвязанные динамические данные

Между элементами этих данных нет никакой связи, а по классификации они аналогичны статистическим данным.

 

Структуры данных Статистические переменные Динамические переменные
Простая переменная величина type t=1..100; var x: char; y: t; begin x:=’*’; y:=5; …… end. type t=1..100; var Px: ^char; Py: ^t;   begin new(Px); new(Py); x:=’*’; y:=5; …… dispose(Px); dispose(Py); end.
Массив type mat=array[1..3] of byte; var x: mat; i: byte;   begin for i:=1 to 3 do read(x[i]); …… end. type mat= arr[1..3] of byte; var Px: ^mat; i: byte;   begin new(Px); for i:=1 to 3 do read(Px^[i]); …… dispose(Px); end.

 

Каждый элемент списка состоит из двух частей: информационной (х1, х2 и т.д.) и указатель на следующий элемент списка (р2, р3 и т.д.). последний элемент имеет пустой указатель nil. Связанный список такого типа называется однонаправленной цепочкой. Указатель на начало (первый элемент) является значением отдельной переменной.


First
Адрес ячейки динамической памяти, в которой

хранится значение Х1

               
 
   
Х2
 
Х3
 
Х4

 

 


Data

               
 
Р2
 
Р3
 
Р4
 
Nil