Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
| krox |
12.10.2008 12:41
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Задание следующее...
Элементы двунаправленного списка имеют следующую структуру: Шифр детали Наименование Цена Вес Указатель предыдущего Указатель последующего Удалить элемент с заданным номером К от начала списка. задание выполнил используя пример однонаправленого списка... помогите/объясните как сделать задание с двунаправлеными списками... вот код unit Unit1; в этом коде однонаправленый список... нужен двунаправленый по заданию... в прикреплёном архиве все файлы проекта... Прикрепленные файлы
____2.rar ( 9.56 килобайт )
Кол-во скачиваний: 257 |
![]() ![]() |
| volvo |
12.10.2008 13:04
Сообщение
#2
|
|
Гость |
Во-первых, у тебя Дельфи, а для Дельфи есть соответствующий раздел...
Во вторых, то, что ты делаешь - не выдерживает никакой критики: описал бы список как класс, было бы гораздо лучше, зачем усложнять себе жизнь работой с глобальными переменными? Зачем объединять указатели sled/pred и данные? Не надо этого делать... как только тебе понадобится сохранить содержимое списка в файл, ты поймешь, о чем я... Все проще гораздо: type Для удаления элемента из двухсвязного списка пользуемся procedure tlist.remove_item(p: ptitem); // <--- сюда передается адрес элемента, который надо удалить, находится этот адрес - простым циклом с увеличением счетчика элементов, как у тебя и было сделано для списка односвязного... P.S. Если пользуешься Дельфи 2009, то можно сделать еще красивее... |
| krox |
12.10.2008 15:33
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
хм...
получается, что вначале надо изменить процедуру добавления... где в этот код воткнуть указатель на предыдущий элемент.... procedure TForm1.Button1Click(Sender: TObject); менять тип рекорд не буду... записи(списки) сохранять в файл не надо... и как изменить procedure tlist.remove_item(p: ptitem); // <--- сюда передается адрес элемента, который надо удалить не пользуясь классами а массивом записей TElem= record |
krox Двунаправленный список(Delphi) 12.10.2008 12:41
volvo Ну, как знаешь... А я подсказывать тебе, как некор... 12.10.2008 16:28
krox вся проблема в том, что ООП ещё не проходили.... и... 12.10.2008 16:30
volvo Записи и процедуры/функции знаешь, как использоват... 13.10.2008 13:26
krox спасибо тебе, volvo... сёдня был на паре... показа... 13.10.2008 15:06
мисс_граффити
Нас так же учили...
Программирование на языках вы... 14.10.2008 1:33
krox Препод сказал ещё сортировку по любому ключу приле... 25.10.2008 14:42
volvo По-моему, ты недооцениваешь преимущества Паскаля/Д... 25.10.2008 15:11
krox спасибо) работает) очень грамотный и тонкий наёп с... 25.10.2008 17:06
volvo Точно там же, где и предложенное мной выше разделе... 25.10.2008 17:29
krox я немного не врубился... если используем рекурсию ... 26.10.2008 12:19
volvo Как хочешь так и засовывай... Заодно засунь трехна... 26.10.2008 12:52
krox попытаюсь объяснить преподу эту точку зрения...
х... 26.10.2008 13:07
krox можешь ещё с выводом элементов в обратном порядке ... 26.10.2008 13:31
krox наконец-то нашёл двунаправленое удаление элементов... 30.11.2008 12:16![]() ![]() |
|
Текстовая версия | 8.12.2025 7:28 |