0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|||||||||||
1 | |||||||||||
Односвязный список на C#. Вставить первый элемент в конец07.03.2014, 01:13. Показов 6908. Ответов 18
Метки нет (Все метки)
Добрый день всем! Заранее извиняюсь если вопрос нубский.
Стоит такая задача: есть односвязный список из произвольного количества элементов. Нужно написать метод, который в качестве параметра принимает этот список, ставит первый элемент вконец и возвращает ссылку на новый первый элемент. Тоесть: дано A - > B - > C - > D - > нужно вернуть B - > C - > D - > A - > для произвольного кол-ва элементов списка. Вот код:
И вот сама функция Sort():
Задача 2: Инвертирвать; Задача 3: Вставить новый элемент всередину; Заранее всем спасибо за ответы! Добавлено через 1 час 23 минуты Помню задачу немного похожую решал еще в школе на алгебре: Вичислить значение выражения: Так оно решалось составлением уравнения Может тут нечто похожее можно придумать
0
|
07.03.2014, 01:13 | |
Ответы с готовыми решениями:
18
Односвязный список: удалить k-й элемент и вставить m элементов в конец Односвязный список. Подсчитать сумму N первых элементов. Удалить эти элементы и вставить в конец списка Односвязный список: удалить первый элемент Вставить элемент в односвязный список |
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
17.03.2014, 19:41 [ТС] | 2 |
Господа гуру. Помогите пожалуйста
Это задание мне дали на собеседовании и сказали, что решается оно в 3 строки, после того как я в нем начал так тупить, после этого со мной не захотел никто даже общаться
0
|
Master of Orion
|
||||||
17.03.2014, 19:54 | 3 | |||||
Jan86, циклы нужно использовать. Например
1
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
17.03.2014, 20:16 [ТС] | 4 |
В задаче было сказано не про вывод на консоль, а написать функцию, которая для "матрешки" произвольной глубины вложенности, вернет такую же матрешку по такому примеру:
["A", ["B", ["C", ["D", ["E", []]]]]] —> ["E", ["B", ["C", ["D", ["A", []]]]]] Надеюсь правильно объяснил. Заранее спасибо! А за совет по циклам спасибо, я немного уловил идею, буду думать как выкрутится
0
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
||||||
17.03.2014, 20:45 | 5 | |||||
Сообщение было отмечено Jan86 как решение
Решение
Перестановку первого эл-та в конец можно сделать так:
1
|
Master of Orion
|
||||||
17.03.2014, 20:54 | 6 | |||||
0
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
17.03.2014, 21:20 [ТС] | 7 |
Kruds, спасибо,это работает!
Но не сочтите за труд, можете пожалуйста разъяснить ньюбу эту строку: Как оно, ну и собственно функция работают?
0
|
rattrapper
|
17.03.2014, 21:27
#9
|
0
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
17.03.2014, 21:28 [ТС] | 10 |
И да, что делает пустой цикл, заранее сенкс
0
|
Master of Orion
|
|
17.03.2014, 21:30 | 11 |
rattrapper, её плохо заметно.
Jan86, мы сохраняем первый элемент, потом гоним пустой цикл, чтобы в конце этого цикла элемент node указывал на последний элемент, после этого заставляем его указывать на сохраненный в начале элемент. Готово.
0
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
||||||
17.03.2014, 23:32 [ТС] | 12 | |||||
Господа, чтобы вас не задалбывать, скажите пожалуйста, где можно доходчиво и на пальцах и с примерами почитать про передачу внутренней переменной функции внешнему коду, замыкание, или как это называется? (Простите, если туплю в терминологии.)
Я новичок, но у Троелсена, например, таких фокусов не встречал.
0
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
18.03.2014, 01:08 [ТС] | 14 |
Да, так понятнее..
Где про
0
|
Master of Orion
|
|
18.03.2014, 10:13 | 15 |
Jan86, так она ничем не отличается от глобальной. Это вас не С, где нужны танцы с. Malloc, тут память сразу в куче выделяется. А значит, можно спокойно передавать что угодно куда угодно. При необходимости среда сама складирует что ей нужно чтобы обеспечить валидость куска памяти
Добавлено через 9 часов 2 минуты склонирует*, а не складирует Не по теме: Некоторые замены тупого айфона ржачные конечно... Возвращают во времена Т9 :)
1
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
18.03.2014, 11:43 [ТС] | 16 |
Я имел в виду, что в цикле for переменная "node" выступает его итератором, и, на сколько я понимаю, должна быть видна только данному циклу (и внутри его). А здесь получается, что в пустом цикле мы ее изменяем и передаем "наружу"? Поправьте, пожалуйста, если не прав.
0
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 10
|
|
18.03.2014, 16:21 [ТС] | 18 |
Большое спасибо, буду сам вникать. Мне еще не до конца все понятно, но не буду уже надоедать уважаемым форумчанам.
0
|
Master of Orion
|
|
18.03.2014, 16:26 | 19 |
Jan86, поправьте пост, у нас так не ругаются, даже завуалированно.
Добавлено через 3 минуты спасибо.
0
|
18.03.2014, 16:26 | |
18.03.2014, 16:26 | |
Помогаю со студенческими работами здесь
19
Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец Сформировать список L и перенести в конец списка его первый элемент Односвязный список с добавлением нового элемента в конец. Односвязный список: добавление элемента в конец списка Односвязный список: добавление элементов в начало и в конец Вставить первый столбец после столбца, в котором находится первый встреченный элемент А Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |