|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.03.2008, 01:20 | #11 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Если интересно, я бы сделал это так (исходя из предположения, что в таблице может быть очень много строк и столбцов и достаточно много пустых клеток):
1. Горизонтальный заголовок - столбцы - двусвязный список из элементов: а. - ссылка на предыдущий столбец б. - ссылка на следующий столбец в. - ссылка на первую занятую ячейку столбца г. - ссылка на последнюю занятую ячейку столбца д. - ширина столбца -------------- е. - (может быть) - номер столбца (20-24 байта на элемент) 2. Вертикальный заголовок - строки - двусвязный список из элементов: а. - ссылка на предыдущую строку б. - ссылка на следующую строку в. - ссылка на первую занятую ячейку строки г. - ссылка на последнюю занятую ячейку строки д. - высота строки -------------- е. - (может быть) - номер строки (20-24 байта на элемент) 3. Ячейка: а. ссылка на предыдущую по столбцу ячейку (или на заголовок [первая занятая ячейка]) б. ссылка на следующую по столбцу ячейку (или на заголовок [последняя занятая ячейка]) в., г. - аналогично для строк д. - указатель на данные. (20 байт на элемент) Т.е. само описание такой таблицы размером, скажем, 1000 х 1000 в которой занято 50% ячеек займет около 10 мб - смешно по нынешним меркам, а вставлять/удалять строки/столбцы/клетки можно очень быстро, точно так же, в случае, если нужно поменять размер ячейки, можно быстро сменить размеры ее строки и столбца. |
02.03.2008, 01:56 | #12 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,088
|
спасиб за отзывчивость так скаать. надеюсь в рейтинге правильно плюсик поставил, а то пока не ткнул не одобряю, ноль эмоций было, а тока выбрал не одобряю, сразу сказали спасибо и рейтинг повысили )
|
02.03.2008, 14:35 | #13 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
pu4koff, Единственное, я, на ночь глядя, забыл добавить к клеткам прямые ссылки на соответствующие им заголовки (чтобы не получить квадратичную сложность поиска).
|
02.03.2008, 22:02 | #14 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,088
|
ну это понятно. мне главное саму идею было. сам склонялся к спискам)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен совет по С++ | 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 |