|
|
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
Задали тут на собеседовании такое задание: Есть структура данных на подобии LinkedList'a, только односвязного. Т.е. имеющего ссылку next, такого же типа на элемент впередистоящий. Соответственно в случае последнего элемента next == null; Предположим, что один из элементов ссылается на элемент, находящийся сзади. Таким образом при итерации получаем бесконечный цикл. Написать алгоритм, определяющий бесконечный ли это список или нет. Ваше решение(кому интересно разумеется)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 22:15 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
При переборе меняем порядок списка , в итоге если вернулись к началу - то бесконечный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 22:36 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
Если у списка можно получить размер, то я бы проверил так: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 01:16 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
ЛагманПри переборе меняем порядок списка , в итоге если вернулись к началу - то бесконечный.Не катит. Если цикл где-то в центре, то вы никогда не вернетесь в начало, но список все равно будет бесконечным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 07:51 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
С помощью вспомогательного хешсета, если, конечно, задача допускает использование доп. памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 09:09 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
xml2015Задали тут на собеседовании такое задание: Есть структура данных на подобии LinkedList'a, только односвязного. Т.е. имеющего ссылку next, такого же типа на элемент впередистоящий. Соответственно в случае последнего элемента next == null; Предположим, что один из элементов ссылается на элемент, находящийся сзади. Таким образом при итерации получаем бесконечный цикл. Написать алгоритм, определяющий бесконечный ли это список или нет. Ваше решение(кому интересно разумеется)? например у вас массив интежеров, засовываем в linked list мапу как один элемент листа. ключ - интежер, а значение boolean равное false. во время прохождения по элементу делаем boolean true. если пришли, а он true - значит уже цикл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 09:41 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
Берем два указателя на начало списка и начинаем проходить по нему: один указатель движется с шагом 1, второй - с шагом 2. Если эти указатели когда-нибудь встретятся (будут указывать на один и тот же элемент), значит мы нашли цикл в списке. Если второй указатель дошел до конца списка, то циклов в нем нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 09:50 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
xml2015, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:05 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
cdtyjv Если цикл где-то в центре, то вы никогда не вернетесь в начало, Для начала представьте себе цикл где-то в центре односвязанного списка . А потом внимательно прочтите алгоритм. Тан написано же про "переворачивание связей". Понятно, что при этом список портится и алгоритм надо прогнать еще раз для его восстановления (если это нужно). Ну и это нифига не потокобезопасно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:08 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
AYTereschenko, Если "зацикленный" элемент непарный, к примеру 3, то цикл с шагом 2 дойдет до конца, цикл 1 нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:13 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
ZukoraAYTereschenko, Если "зацикленный" элемент непарный, к примеру 3, то цикл с шагом 2 дойдет до конца, цикл 1 нет. Алгоритм на самом деле правильный, но если волнуют циклы длиной 1, то достаточно добавиить проверку next!=this ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:19 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
Zukoraто цикл с шагом 2 дойдет до конца До конца кольца? Если next().next() == null , то и a =next(); a.next()==null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:26 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
ivanraАлгоритм на самом деле правильный, но если волнуют циклы длиной 1, то достаточно добавиить проверку next!=this Не обязательно. Если a.next()==a, то и a.next()==a.next().next() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 10:30 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
cdtyjvЛагманПри переборе меняем порядок списка , в итоге если вернулись к началу - то бесконечный.Не катит. Если цикл где-то в центре, то вы никогда не вернетесь в начало, но список все равно будет бесконечным. Почему это не вернусь. Вернусь обязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:34 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
ЛагманcdtyjvНе катит. Если цикл где-то в центре, то вы никогда не вернетесь в начало, но список все равно будет бесконечным. Почему это не вернусь. Вернусь обязательно.Да ладно, тут даже говорить об этом смысла нет, так как по условию задачи список односвязный, следовательно, вы не можете идти "назад". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:47 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
На самом деле, хз о чем мы тут говорим, так как правильный ответ уже был дан AYTereschenko : http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 11:55 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
cdtyjvЛагманпропущено... Почему это не вернусь. Вернусь обязательно.Да ладно, тут даже говорить об этом смысла нет, так как по условию задачи список односвязный, следовательно, вы не можете идти "назад". я же сказал что буду менять направление, т.е. переставлять линки в обратную сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:14 |
|
||
|
Задача по LinkedList
|
|||
|---|---|---|---|
|
#18+
Лагманя же сказал что буду менять направление, т.е. переставлять линки в обратную сторону.То есть вам надо менять список. Не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 12:49 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38548453&tid=2127708]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 366ms |

| 0 / 0 |
