Круглая сложность конкатенации связанных списков - PullRequest
0 голосов
/ 15 декабря 2011

Предположим, у вас есть два круглых связанных списка, один из которых имеет размер M, а другой - N и M < N. Если вы не знаете, какой список имеет размер M, какова сложность наихудшего случая объединения двух списков в один список?

Я думал O(M) но это не правильно. И нет, я думаю, что нет конкретного места для объединения.

1 Ответ

1 голос
/ 15 декабря 2011

Если дальнейших ограничений нет и ваши списки изменчивы (как обычные связанные списки в таких языках, как C, C #, Java, ...), просто разделите два открытых списка на любые узлы, которые у вас есть, и соедините их вместе (включает в себя до четырех узлов).Поскольку это домашнее задание, я оставляю вам решать сложность, но это должно быть легко, в предыдущем указании есть сильный намек.

Если списки являются неизменяемыми, как это обычно бывает в чисто функциональном языке, вам придется скопировать несколько узлов и получить другую сложность.Какая сложность будет зависеть от ограничений вида результата (например, должен ли это быть круговой связанный список?).

...