Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2008, 01:20   #11
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
будем думать в общем на досуге)
Если интересно, я бы сделал это так (исходя из предположения, что в таблице может быть очень много строк и столбцов и достаточно много пустых клеток):
1. Горизонтальный заголовок - столбцы - двусвязный список из элементов:
а. - ссылка на предыдущий столбец
б. - ссылка на следующий столбец
в. - ссылка на первую занятую ячейку столбца
г. - ссылка на последнюю занятую ячейку столбца
д. - ширина столбца
--------------
е. - (может быть) - номер столбца
(20-24 байта на элемент)
2. Вертикальный заголовок - строки - двусвязный список из элементов:
а. - ссылка на предыдущую строку
б. - ссылка на следующую строку
в. - ссылка на первую занятую ячейку строки
г. - ссылка на последнюю занятую ячейку строки
д. - высота строки
--------------
е. - (может быть) - номер строки
(20-24 байта на элемент)
3. Ячейка:
а. ссылка на предыдущую по столбцу ячейку (или на заголовок [первая занятая ячейка])
б. ссылка на следующую по столбцу ячейку (или на заголовок [последняя занятая ячейка])
в., г. - аналогично для строк
д. - указатель на данные.
(20 байт на элемент)
Т.е. само описание такой таблицы размером, скажем, 1000 х 1000 в которой занято 50% ячеек займет около 10 мб - смешно по нынешним меркам, а вставлять/удалять строки/столбцы/клетки можно очень быстро, точно так же, в случае, если нужно поменять размер ячейки, можно быстро сменить размеры ее строки и столбца.
Изображения
Тип файла: jpg table.jpg (53.5 Кб, 151 просмотров)
B_N вне форума Ответить с цитированием
Старый 02.03.2008, 01:56   #12
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,088
По умолчанию

спасиб за отзывчивость так скаать. надеюсь в рейтинге правильно плюсик поставил, а то пока не ткнул не одобряю, ноль эмоций было, а тока выбрал не одобряю, сразу сказали спасибо и рейтинг повысили )
pu4koff вне форума Ответить с цитированием
Старый 02.03.2008, 14:35   #13
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

pu4koff, Единственное, я, на ночь глядя, забыл добавить к клеткам прямые ссылки на соответствующие им заголовки (чтобы не получить квадратичную сложность поиска).
B_N вне форума Ответить с цитированием
Старый 02.03.2008, 22:02   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,088
По умолчанию

ну это понятно. мне главное саму идею было. сам склонялся к спискам)
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет по С++ profi Помощь студентам 3 28.07.2008 19:20
Нужен совет Михаил Юрьевич Общие вопросы Delphi 3 04.05.2008 21:52
Нужен ваш совет SZero Помощь студентам 3 24.02.2008 17:51
Нужен совет Михаил Юрьевич Общие вопросы Delphi 7 27.01.2008 10:25
Нужен ваш совет HIP Общие вопросы Delphi 1 20.06.2007 14:32