![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 02.06.2009
Сообщений: 3
|
![]()
Помогите пожалуйста написать задачу, а то мне зачет не хотят ставить(((
Даны два линейных списка. Определить, является ли один список подсписком другого. Я уже всю голову сломала, вроде задача не такая сложная, а не получается... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
алгоритм ТОЧНО такой же, как и при поиске подстроки в строке.
Берём тот список (пусть будет S2), который мы ищем в другом списке (S1). Перебирай второй список ищем совпадение с первым элементом S2[i] = S1[i] если совпало, запоминаем позицию и, наращивая индекс, проверяем на совпадение второй, третий и т.д. пока не встретим конец одного из списков или пока элементы не будут различаться. дальше проверочки: Если дошли до конца списка S2 - выдаём "ВХОДИТ" и выход из цикла. Если дошли до конца списка S2 - выдаём "НЕ ВХОДИТ" и выход из цикла. Если встретили различающиеся элементы, возращаемся к запомненной позиции (где совпал первый элемент) и продолжаем проверку на совпадение первого элемента S2 со следующими. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кольцевой линейный список | Seafulf | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 16.11.2013 20:02 |
Линейный Двунаправленный Список | D1mon | Помощь студентам | 1 | 14.04.2009 21:37 |
Линейный двунаправленный список | Seg_62 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 28.08.2008 21:02 |
Составить линейный список, Среда Delphi | Kreaman | Помощь студентам | 1 | 11.06.2008 19:54 |
Линейный список | Black_Ak24 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.01.2008 15:00 |