Помощь - Поиск - Пользователи - Календарь
Полная версия: односвязные линейные списки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Bast
Даны два упорядоченных по не уыванию линейных односвязных списка. Проверьте, содержаться ли элементы первого списка во втором в указанном порядке. помогите плиз
Bast
Ну неужели никто не знает cray.gif
andriano
Есть некоторая неоднозначность в формулировке вопроса: "Содержатся ли элементы" или "содержатся ли в указанном порядке".
Ответ в общем случае будет таков: если содержатся, то именно в указанном порядке.
Lapp
А в частном случае - покажи, что сама уже сделала. Надеюсь, ты не рассчитываешь, что здесь напишут всю программу за тебя.

Если теья интересует алгоритм, то он примерно такой:
идешь по двум спискам с начала до конца параллельно. То есть, сначала становишься на первые элементы и сравниваешь их. Потом продвигаешься на один элемент по списку, у которого первый элемент меньше. Потом то же самое, и т.д. Если встречаешь одинаковые элементы - записываешь их и потом продвигаешься по любому из них. И так пока не кончится один из списков.
andriano
Lapp, "в указанном порядке" не означает в общем случае, что элементы должны следовать именно подряд.
Bast
 TYPE
plist=^list;
list=record
data:longint;
next:plist;
end;
VAR
x1,x2:plist;

Procedure readdata;
Begin
//тут эти два списка надо читать
End;

var
y1,y2:plist;
BEGIN
readdata;
y1:=x1;
y2:=x2;
while (y1<>nil) and (y2<>nil) do
begin
if y1^.data<>y2^.data then break;
y1:=y1^.next;
y2:=y2^.next;
end;
if (y1<>nil) or (y2<>nil) then
write('spiski ne ravni')
else
write('spiski ravni');
End.


Вот только незнаю правильно или нет
Yevgeny
а если у тебя окажутся последние элементы в списках (одинаковой длинны) разные, то тогда тогда они будут занилены оба, а прога напишет, что они равны, вроде бы!
Так что тебе лучше всего сделать эти списки с последним пустым элементом, а белать всегда до предпоследнего, погда у тебя с нилами никаких проблем не будет smile.gif

Добавлено через 1 мин.
бегать lol.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.