Даны два упорядоченных по не уыванию линейных односвязных списка. Проверьте, содержаться ли элементы первого списка во втором в указанном порядке. помогите плиз
Bast
15.12.2007 18:09
Ну неужели никто не знает
andriano
15.12.2007 18:13
Есть некоторая неоднозначность в формулировке вопроса: "Содержатся ли элементы" или "содержатся ли в указанном порядке". Ответ в общем случае будет таков: если содержатся, то именно в указанном порядке.
Lapp
15.12.2007 18:39
А в частном случае - покажи, что сама уже сделала. Надеюсь, ты не рассчитываешь, что здесь напишут всю программу за тебя.
Если теья интересует алгоритм, то он примерно такой: идешь по двум спискам с начала до конца параллельно. То есть, сначала становишься на первые элементы и сравниваешь их. Потом продвигаешься на один элемент по списку, у которого первый элемент меньше. Потом то же самое, и т.д. Если встречаешь одинаковые элементы - записываешь их и потом продвигаешься по любому из них. И так пока не кончится один из списков.
andriano
15.12.2007 21:43
Lapp, "в указанном порядке" не означает в общем случае, что элементы должны следовать именно подряд.
Bast
10.01.2008 23:13
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
17.01.2008 3:35
а если у тебя окажутся последние элементы в списках (одинаковой длинны) разные, то тогда тогда они будут занилены оба, а прога напишет, что они равны, вроде бы! Так что тебе лучше всего сделать эти списки с последним пустым элементом, а белать всегда до предпоследнего, погда у тебя с нилами никаких проблем не будет
Добавлено через 1 мин. бегать
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.