списки, списки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
списки, списки |
Krjuger |
2.03.2011 11:42
Сообщение
#21
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
А вам не кажется,klik1602,что ваша задача совсем другая по сравнению с топик стартером и имело бы смысл создать свою тему,да и поиск по сортировкам вам выдаст уйму результатов.У человека в данной теме проблема с самим списком,а ваша задача решается вообще без списков ,т.к
Цитата количество элементов в списке нам должно быть известно заранее ,что вам мешает тогда завести обычный массив,для которого в интернете тонна методов сортировки и приведенного кода.Так что ,во-первых,уточните каким методом вам нужно отсортировать и как именно отсортировать. Как имея,заведите 3 переменных,которые будут обозачать минимальный элемент,максимальный и количество,пройдитесь по вашему файлу и найдите минимальный максмальный элементы и количество,теперь у вас есть вся информация чтобы сделать массив удовлетворяющий сразу всем вашим условиям... |
klik1602 |
2.03.2011 12:12
Сообщение
#22
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
условие задачи - 23. Дан неупорядоченный линейный односвязный список и массив, содержащий номера соответствующих элементов в упорядоченном списке. Перестройте данный список в соответствии с номерами, заданными массивом. - по-моему то же условие, что и у девушки до меня, видимо, я его не так понимаю, как надо было бы.. или я неправильно выразилась..мне не понятно как перестроить массив?
Сообщение отредактировано: klik1602 - 2.03.2011 12:30 |
volvo |
2.03.2011 20:01
Сообщение
#23
|
Гость |
Цитата мне не понятно как перестроить массив? Не надо массив перестраивать. Перестроить нужно список. Ничего, кроме как сделать нагло, но действенно, в голову пока не приходит:const На выходе: 1 2 3 4 5 , то есть, список переформирован. |
klik1602 |
2.03.2011 20:20
Сообщение
#24
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
{ <--- Эту процедуру я выкладывал неоднократно,-поиском пользуемся } =мм( я не нашла, можете ещё раз скинуть, если не сложно)
|
volvo |
2.03.2011 20:37
Сообщение
#25
|
Гость |
Плохо искала. Вот тут она лежит, например:
Задача с использованием списка |
klik1602 |
3.03.2011 10:11
Сообщение
#26
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
function get_item (n : integer) : plist - это функция получения указателя на голову списка?? и зачем new_start : plist? я не нашла где он используется?
мм, что-то у меня программа абру-кадабру а не переставленный список выдала)) вот мои наработки.. uses Сообщение отредактировано: klik1602 - 3.03.2011 10:54 |
volvo |
3.03.2011 10:20
Сообщение
#27
|
Гость |
Это функция получения указателя на N-ый элемент списка. Только не надо ничего переделывать, не надо выносить эту функцию наружу, а потом опять говорить, что "оно не работает". В том виде, в котором я показал - это прекрасно работает. Изменяешь - вся ответственность за изменения на тебе.
|
TarasBer |
3.03.2011 10:55
Сообщение
#28
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> for i := 1 to n do
> Links[i] := get_item (arr[i]); Мне это место почему-то не нравится. -------------------- |
volvo |
3.03.2011 10:57
Сообщение
#29
|
Гость |
Не знаю, почему. Опять преоптимизация? Предложи другое решение, посмотрим, понравится ли оно мне...
Добавлено через 6 мин. Цитата мм, что-то у меня программа абру-кадабру а не переставленный список выдала)) То есть, ты действительно считаешь, что я должен проверить твой код на всех возможных значениях входного файла? Мне так не кажется. У тебя не работает - будь добра присоединить те данные, с которыми у тебя не работает.Повторяю еще раз: само переформирование списка производится. Запусти пример в том виде, в котором я его привел, и убедись. А уж то, что ты либо некорректно читаешь список, либо его некорректно выводишь, либо неправильно заполняешь массив, согласно которому его надо перестроить - это как-то ко мне никакого отношения не имеет. Это сугубо твои проблемы, сделай правильно - будет работать. Добавлено через 9 мин. Ну вот, все встало на свои места. У тебя при входе в Sort указатель на голову списка уже нулевой. Исправляй свою процедуру вывода списка в файл, потом будешь предъявлять претензии |
klik1602 |
3.03.2011 11:25
Сообщение
#30
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
=))) урррра)))) я поняла о чём вы))) всё исправила)) всё работает))) спасибо большое-прибольшое)))))))
|
TarasBer |
3.03.2011 13:22
Сообщение
#31
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Не знаю, почему. Опять преоптимизация?
Лепить префикс "пре" на любую оптимизацию - это шаблон говнокода (когда придёт время оптимизировать _алгоритм_, будет поздно). Как и собственно сама преоптимизация (на уровне _кода_, который всегда можно отоптимизировать в последний момент), кстати, но тут её нет. > Предложи другое решение, посмотрим, понравится ли оно мне... for i := 1 to n do Links[i] := get_item (arr[i]); Эквивалентно for i := 1 to n do Links[revarr[i]] := get_item (i); где revarr строится так: for i := 1 to n do revarr[arr[i]] := i; а вот уже "for i := 1 to n do что-то там с get_item(i)" можно заменить на проход списка. А можно и не заменять, а сделать универсальнее get_item (добавить в неё немного искуственного интеллекта):
(кстати, форум таки жрёт пробелы вне тега кода) -------------------- |
Текстовая версия | 28.04.2024 23:56 |