Однонаправленный список, вхождение одного списка в другой |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Однонаправленный список, вхождение одного списка в другой |
Boxer |
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Доброго времени суток!
Пишу функцию, входит ли список L1 в список L2 я пишу если 1й эл списка L1 равен i-ому эл списка L2, то запускаю массив while L1^.next<>nil do {а вот тут-то и вопрос! я хочу записать: сравниваем 2й и последующие эл списка L1 с i+1, i+2... эл списка L2, как это записать я не знаю =( } |
volvo |
Сообщение
#2
|
Гость |
Добавь 2 дополнительные переменные:
L2 := start_L2; А вообще, задача решалась неоднократно. Поиск помучай... |
Boxer |
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Догнал! только.. как дальше будет реализовываться поиск по L2 и если (предположим) у нас записано
L1: 2 3 4 L2:1 2 2 2 3 2 3 4 5 т.е. после третьей двойки 2 эл L1 равен 2 эл L2, а потом снова 2 3 4, т.е. нужно опть проверять 1 эл L1.... что делать тогда?? |
volvo |
Сообщение
#4
|
Гость |
Да ничего не делать... Мой пример такие случаи на ура отрабатывает... Смотри:
L2 := L2_start;, и вот: Running "f:\programs\pascal\2010_12_18_boxer.exe " Что не так? (списки "зашил" в программу, чтоб не вводить при тестировании. Лентяй я ) |
Boxer |
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
volvo, я дописал этот код, однако в некоторых местах может произойти просто взрыв мозга! Прошу помочь исправить...
uses Сообщение отредактировано: Boxer - |
volvo |
Сообщение
#6
|
Гость |
Цитата может произойти просто взрыв мозга! Ничего тут произойти не может, твой код даже компилироваться не будет... Цитата я дописал этот код Во-первых, ты не дописал, а переписал код (это два совершенно разных слова, заметь). Зачем понадобилось в тот код, что я показал, вносить изменения, причем совершенно ненужные? Я ж сказал, что приведенный фрагмент работает. Надо было только оформить его функцией, и правильно написать получение списка от пользователя. Вот, смотри:type Please enter list L1: Введите элементы списка. Не надо никаких точек как признака окончания ввода, есть функция Eoln, которая понимает, когда закончилась строка. Во вторых, в следующий раз пытайся хотя бы откомпилировать программу, и исправить те ошибки на которые указывает компилятор. О неописанном типе, о несуществующих переменных, например. Ну, и в третьих: программа еще не закончена. Добавляй код удаления списков... Без него ни один уважающий себя преподаватель программу не примет. Работодатель - тем более... |
Boxer |
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: 0 |
Хорошо, буду работать.
спасибо за помощь, допишу |
Текстовая версия | 13.05.2024 14:42 |