![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
*alt |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача
Проверить, содержатся ли элементы списка А в списке В в указанном списком А порядке. Помогите, пожалуйста. Как реализовать решение?? Подкиньте идейку... с чего начать.... или алгоритм посоветуйте Сообщение отредактировано: *alt - 19.11.2007 21:27 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вноси данные в список не в обратном, а в прямом порядке (так, как они записаны в строке), тогда сможешь делать так:
function search (L1, L2:Tptr):boolean; Сообщение отредактировано: volvo - 20.11.2007 23:47 |
*alt |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так значит получаеися??
Код type Tinf = integer; Tptr = ^Tlist; Tlist = record inf:Tinf; next:Tptr; end; var A,B:Tptr; procedure create_list (var L:Tptr ); var q,p:Tptr; e:Tinf; begin L:=nil; while not eoln do begin new(p); read (e); p^.inf:=e; p^.next:=nil; if l=nil then l:=p else q^.next:=p; q:=p; end; readln end; function search (L1, L2:Tptr):boolean; {by Volvo (c)=)} var pl_1, pl_2: tptr; begin pl_1 := L1; pl_2 := L2; while (pl_1 <> nil) and (pl_2 <> nil) do begin if L1^.inf = pl_2^.inf then begin pl_1 := L1; while (pl_1 <> nil) and (pl_2 <> nil) and (pl_1^.inf = pl_2^.inf) do begin pl_1 := pl_1^.next; pl_2 := pl_2^.next; end; end else pl_2 := pl_2^.next; end; search := pl_1 = nil; end; procedure del_list (var h:Tptr); var p:Tptr; begin while h<>nil do begin p:=h; h:=h^.next; dispose (p); end; end; begin {main} write ('Введите элементы списка A: '); create_list(A); write ('Введите элементы списка B: '); create_list(B); if search(A,B) then writeln ('Содержится') else writeln ('Не Содержится'); del_list (A); del_list (B); readln; end. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 7:44 |