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

UptoLike

4
1. ЛИНЕЙНЫЕ ИНФОРМАЦИОННЫЕ СТРУКТУРЫ
Программы для ЭВМ обычно оперируют с таблицами информации,
в которых присутствуют важные структурные отношения между элемен-
тами данных. В простейшем случае таблица представляет собой линей-
ный список элементов. В более сложных ситуациях таблица может быть
двумерным массивом, имеющим строки и столбцы; n-мерным массивом
при весьма больших значениях n; может иметь структуру дерева, пред-
ставляющего отношения иерархии или ветвления; наконец, может быть
сложной многосвязной структурой, подобной человеческому мозгу. Хо-
рошее понимание структурных отношений позволяет правильно исполь-
зовать вычислительную машину при решении конкретных задач.
Большую часть материала, который предполагается рассмотреть,
будем называть «обработкой списков», поскольку был разработан ряд
систем программирования (например, ИПЛ-V, ЛИСП и СЛИП), которые
упростили работу с некоторыми общими видами структур, называемых
списками. Информация в списке представляется множеством записей
(объектов), называемых узлами (элементами) списка. Каждый узел спи-
ска состоит из одного или нескольких последовательных слов в памяти
машины, разделённых на именуемые части, называемые полями. Содер-
жимым любого поля в узле могут быть числа, буквы, связи всё, что
только пожелает программист. В качестве примера рассмотрим случай,
когда элементы списка представляют игральные карты: мы можем иметь
узлы, разбитые на четыре поляTAG (признак), SUIT (масть), RANK
(ранг) и NEXT (следующий):
TAG SUIT RANK NEXT
Пусть: TAG = 1 означает, что карта повёрнута лицевой стороной
вниз, TAG = 0 лицевой стороной вверх; SUIT = 1, 2, 3 и 4 соответст-
венно для трефовых, бубновых, червовых и пиковых карт; RANK = 1,
2, …, 13 для туза, двойки, …, короля; NEXT связь с картой в стопке
ниже данной. Адрес узла является адресом первого слова в узле. Адрес
узла называют указателем на этот узел. Тогда некоторая колода из трёх
карт может выглядеть так: