Табличные структуры (таблицы данных, матрицы данных)

С таблицами данных мы тоже хорошо знакомы, достаточно вспомнить всем известную таблицу умножения. Табличные структуры отличаются от списочных тем, что элементы данных определяются адресом ячейки, который состоит не из одного параметра, как в списках, а из нескольких. Для таблицы умножения, например адрес ячейки определяется номерами строки и столбца. Нужная ячейка находится на их пересечении, а элемент выбирается из ячейки.

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

Город Население 1850 Население 1900 Население 1950 Население 1980
Нью-Йорк   3 437 202 7 891 957 7 071 639
Лос-Анжелес 1 610   1 970 358 2 966 850
Чикаго   1 698 575 3 620 962 3 005 072
Хьюстон     596 163 1 595 138
Филадельфия 121 376 1 293 667 2 071 605 1 688210

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

Если нужно сохранить таблицу в виде длинной символьной строки, используют один символ-разделитель между элементами, принадлежащими одной строке, и другой разделитель для отделения строк, например, так:

Нью-Йорк*696115*3437202*7891957*7071639#Лос-Анжелес*1610*102479* 1970358*2966850

Для розыска элемента, имеющего адрес ячейки (т, n), надо просмотреть набор данных с самого начала и пересчитать внешние разделители. Когда будет отсчитан m -1 разделитель, надо пересчитывать внутренние разделители. После того как будет найден n -1 разделитель, начнется нужный элемент. Он закончится, когда будет встречен любой очередной разделитель.

Еще проще можно действовать, если все элементы таблицы имеют равную длину. Такие таблицы называют матрицами. В данном случае разделители не нужны, поскольку все элементы имеют равную длину.

Таким образом, табличные структуры данных (матрицы) это упорядоченные структуры, в которых адрес элемента определяется номером строки и номером столбца, на пересечении которых находится ячейка, содержащая искомый элемент.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: