Двусвязный список, опять удаление... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Двусвязный список, опять удаление... |
Rocket |
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
В программе приведены различные операции с двусвязным списком.
Настораживают два пункта: добавление(добавляет всё время за первым добавленным) и удаление(удаляет всё время элементы по порядку после первого). Явно косяки... Прошу посмотреть. Прикрепленные файлы ДвусвязныйСписок.pas ( 4.27 килобайт ) Кол-во скачиваний: 342 |
мисс_граффити |
Сообщение
#2
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
что за интересная конструкция?
while (temp^.info<>x) and (temp^.right<>nil) do begin к чему относится? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Rocket |
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
что за интересная конструкция? while (temp^.info<>x) and (temp^.right<>nil) do begin к чему относится? То есть нужно так? while (temp^.info<>x) and (temp^.right<>nil) do вроде тож не пашет\\\ |
мисс_граффити |
Сообщение
#4
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
а теперь минутку подумай, что ты так делаешь:
1. пока не нашли нужное значение и не дошли до конца списка... 2. переходим на следующий элемент 3. запоминаем еще следующий и его удаляем вот и представь, сколько элементов удалится... в цикле должен быть только переход на следующий элемент. а вот дальше, если мы нашли, что собираемся удалять (как в односвязных - у тебя ж была логическая переменная), то удаляем... кстати, не забудь, что перекидывать надо не 1, а 2 указателя. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Rocket |
Сообщение
#5
|
Знаток Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
а теперь минутку подумай, что ты так делаешь: 1. пока не нашли нужное значение и не дошли до конца списка... 2. переходим на следующий элемент 3. запоминаем еще следующий и его удаляем вот и представь, сколько элементов удалится... в цикле должен быть только переход на следующий элемент. а вот дальше, если мы нашли, что собираемся удалять (как в односвязных - у тебя ж была логическая переменная), то удаляем... кстати, не забудь, что перекидывать надо не 1, а 2 указателя. Вот работающий вариант:
Ещё раз спасибо! Зы Но всё-таки, почему новый элемент всё время добавляется после первого? |
мисс_граффити |
Сообщение
#6
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
посмотрела внимательнее.
во-первых, у тебя не совсем правильно работает очистка списка. надо procedure ToListClear(var first:list);(в односвязном. и в двусвязном - тоже var) во-вторых (по поводу добавления) а куда ты хочешь добавлять? вот так будет добавляться перед первым: procedure ToAdd(var walk:list;x:integer); -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
7rubin |
Сообщение
#7
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Максим Репутация: 0 |
Реализация двусвязног списка
buytask.ru/task767.html |
Текстовая версия | 10.01.2025 6:08 |