Методы программирования. Громов Ю.Ю - 5 стр.

UptoLike

5
Фактические карты
Машинное представление
100: 1 1 10 Λ
386: 0 4 3 100
242: 0 2 2 386
В машинном представлении указаны адреса памяти 100, 386 и 242,
но на их месте могли быть любые другие числа, поскольку каждая карта
ссылается на следующую карту в колоде. Специальный указатель Λ
(ламбда) в узле 100 обозначает пустую связь, т.е. связь с узлом, которого
не существует (десятка трефнижняя карта в стопке).
Введение связей с другими элементами данных является чрезвычай-
но важной идеей в программировании это ключ к представлению слож-
ных информационных структур. В машинном представлении списка свя-
зи между узлами удобно изображать стрелками. Так, для нашего примера
список приобретает следующий вид:
Фактические адреса 242, 386 и 100 (значение которых не суть важ-
но) отсутствуют в данном представлении, а пустая связь изображена как
«заземление» для электрических схем. Символ TOP представляет пере-
менную связи или, как часто говорят, указатель, т.е. переменную, значе-
нием которой является адрес памяти. Для осуществления ссылок на поля
узлов будем использовать имя поля, за которым в скобках следует связь с
желаемым узлом:
TAG (TOP) = 0; SUIT (TOP) = 2; RANK (100) = 10;
RANK (NEXT (TOP)) = 3.
В качестве примера рассмотрим простой алгоритм, который поме-
щает новую карту в колоду сверху, предполагая, что NEWCARD пере-
менная связи и её значением является связь с новой картой:
0
2
2
0
4
3
1
1
10
TOP