Энциклопедия Turbo Pascal. Главы 1-4 Страница 33. Обработка разреженных массивов
|
Страница 33 из 60
Обработка разреженных массивов Обработка разреженных массивов является основной областью применения динамического распределения памяти. В разреженных мас- сивах фактически имеются не все элементы. Такой массив может пот- ребоваться в тех случаях, когда размеры массива значительно пре- вышают размер памяти вашей машины и когда не все элементы массива будут использоваться. Массивы большой размерности требуют большо- го расхода памяти, поскольку ее объем растет по экспоненте в за- висимости от размера массива. Например, для символьной матрицы 10 х10 требуется только 100 байт памяти, а для матрицы 100х100 тре- буется 10 000 байт и для матрицы 1000х1000 требуется уже 1 000 000 байт памяти. Электронная таблица является хорошим примером разреженной матрицы. Даже если матрица будет большой, например, 999х999, в каждый конкретный момент времени будет использована только неко- торая ее часть. Каждому элементу электронной матрицы ставится в соответствие формула, значение или символьные строки. Память под каждый элемент разреженной матрицы выделяется по мере необходи- мости. Хотя использоваться может лишь небольшая часть элементов, вся матрица может быть очень большой - больше чем обычные размеры памяти ЭВМ. Имеется три различных метода создания разреженных массивов: связанный список, двоичное дерево и массив указателей. Каждый из этих методов предполагает, что электронная матрица имеет форму, представленную на следующей странице.
В этом примере Х располагается в ячейке В2.
----А---- ----В---- ----С---- ... 1 2 Х 3 4 5 . . .
|