Информатика для юристов и экономистов


Основные структуры данных - часть 3


Работать с ними особенно удобно.

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

 

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

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

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

 

Город

Население 1850

Население 1900

Население 1950

Население 1980

Нью-Йорк

696115

3 437 202

7 891 957

7 071 639

Лос-Анжелес

1 610

102479

1 970 358

2 966 850

Чикаго

29963

1 698 575

3 620 962

3 005 072

Хьюстон

2396

44633

596 163

1 595 138

Филадельфия

121 376

1 293 667

2 071 605

1 688210

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

применяются два типа разделителей — вертикальные

и горизонтальные

 

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

 

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

 

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


Начало  Назад  Вперед