Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > списки и "сбор мусора" |
Автор: Akeem_dek 2.4.2005, 21:27 |
Помогите разобратся с указаной темой! Пожалуйста! ![]() |
Автор: Domestic Cat 2.4.2005, 21:30 |
А конкретнее нельзя? |
Автор: Akeem_prog 2.4.2005, 21:43 |
у меня тема курсовой работы такая! "списки и "сбор мусора"!" первое понятно, а со вторым я не знаю что делать? Добавлено @ 21:45 Akeem_dek - это мой незарегестрированое имя! Звынайте! |
Автор: poor_yorik 3.4.2005, 15:35 |
Смысл такой, когда ты реализуешь список не как динамическую структуру, а как два массива. Один массив непосредственно означает список. Другой массив для каждого элемента показывает индекс в массиве, где находится следующий элемент, и индекс где находится предыдущий элемент (для двусвязного списка). Когда мы удаляем элемент из списка, то мы просто для предыдущего элемента, меняем индекс следующего элемента: Mas[mas[i].last].next:=mas[i].next; Когда мы удалим много элементов из массива, у нас возникает проблема, что остается несипользованное пространство, котое не используется. Это и называется "мусором". Сбор мусора осуществляется последавтельным сдвигом всех элементов массива, следующих за пустым местом, на одну позицию влево. Насколько я знаю, в динамических списках таких проблем возникнуть не должно... ![]() |
Автор: Akeem_prog 3.4.2005, 15:58 |
Спасибо за подсказку! Теперь осталось всё это описать с помощью предикатов! ![]() |