![]() |
|
![]() ![]() ![]() |
|
weiv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
Что-то ничего не могу найти по сегментированным спискам.
Вообще что такое списки и в частности стеки, очереди я понимаю. Что они из себя представляют? Как вообще узлы списка расположены в этих сегментах, как добавляются/удаляются узлы, сегменты? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
список - способ реализации контейнера, когда связи представлены явно - каждый элемент имеет указатель на одного или обоих соседей стеки и очереди - способ упорядочивания доступа к контейнерам, а именно - добавление/удаление очерелдь: добавление и удаление идет с разных концов стек - с одинаковых... -------------------- qqq |
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Стек- это когда что-то Положил в конец, и удалил из этого конца по надобности. Или по ненадобности.
А очередь- это очевидно, когда первый элемент выходит, а добавляется последний. Добавлено @ 19:13 Это немножко полнее, чем сказал maxim1000. А вообще мне уже пора ссылку на Кормена в подпись вставить ![]() -------------------- Всем добра ![]() |
|||
|
||||
weiv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
Ну это-то я все понимаю. Но вот что такое и как работают именно сегментированные списки?
Просто в книгах ничего про них не написано, а в курсе "Теория вычислительных процессов и структур" вообще присутствует такая тема. Там далее идут хеширование и потом формальные грамматики. Я про них не спрашиваю. Это просто для ориентира. |
|||
|
||||
REPO |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
По-мойму это те списки, которых хранятся по несколько элементов в одном сегменте, например по 10 или 100. Сегменты между собой связаны как эелменты в обычном списке. Такой подход экономит время, когда надо работать с большими списками неопределенной длины. Но многие операции со списком усложнены, например, удаление элементов.
|
|||
|
||||
weiv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 8.3.2006 Репутация: нет Всего: нет |
У меня есть два класса Heap и List (их писал другой человек).
Я пытаюсь разобраться на их основе что собственно представляют эти сегментированные списки. Пока что общей картины для чего нужны все эти структуры и переменные мне не понятно. Heap - отвечает за все выделение памяти сегментами. List - сегментированный список должен быть. List осуществляет обычные функции - добавление элемента, удаление элемента с начала, удаление с конца. Память List берет только через функции Heap. List будет служить как базовый класс, на его основе потом можно создавать разные списки. Так вот как я пока понимаю всю работу. При инициализации List создается объект класса Heap, который по умолчанию создает один сегмент размером 64 кб Допустим я буду добавлять элементы следующего вида в список: struct article { char * word; char * desc; }; Метод add списка вызывает get_mem из Heap для получения памяти. Heap выделяет ее из сегмента. Т.е. из тех 64 кб что выделили для начала. Мне непонятна схема как будут размещаться элементы вот в этом Heap. Должны ли элементы указывать друг на друга? И вообще память под строки word и desc тоже берется из того же сегмента что и под сами элементы? Далее идут сами файлы.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |