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