4 / 1 / 0
Регистрация: 14.10.2012
Сообщений: 22
|
|
1 | |
Односвязные списки: нужно ли при выходе из функции возвращать голову?08.06.2014, 09:23. Показов 1310. Ответов 4
Метки нет (Все метки)
Здравствуйте.
Верю, что когда-то здесь на этот вопрос давался ответ, но я не нашел. Скажите, пожалуйста, вот у меня изначально голова указывает на NULL.Чтобы добавить элемент в конец я прохожу по списку до конца,затем выделяю память под новый элемент,делаю указатель на него от элемента,который был последним,и указываю на Null. Вопрос в следующем:мне нужно при выходе из функции возвращать голову или нет?
0
|
08.06.2014, 09:23 | |
Ответы с готовыми решениями:
4
Односвязные списки (функции обращения списка) Создать на основе класса дополнительный метод из функции main() (односвязные списки) Когда нужно/не нужно возвращать объект при перегрузке присваивания? Точно ли в функции нужно возвращать s? |
08.06.2014, 12:50 | 2 |
Вы описали функцию добавления элемента в список. Зачем из нее что-то возвращать?
Можно лишь модифицировать такую функцию, просто запоминая где-то адрес последнего элемента. Это для того, чтобы каждый раз не бегать в конец списка.
0
|
4 / 1 / 0
Регистрация: 14.10.2012
Сообщений: 22
|
||||||
08.06.2014, 12:53 [ТС] | 3 | |||||
BumerangSP, проблема в том, что когда вывожу список-он ничего не показывает (список для него пуст)
0
|
08.06.2014, 13:24 | 4 | |||||
Сообщение было отмечено Binjo как решение
Решение
Во-первых, Вы передаете в функцию insert копию указателя, а не сам адрес, поэтому все данные просто теряются. Нужно передавать указатель на указатель (List** head), а потом каждый раз разыменовывать head, либо передать ссылку на указатель (List*&) и ничего разыменовывать не придется. Я не помню, можно ли так делать в Си, но знаю, что можно в С++. Хотя и у Вас тоже не Си: оператора выделение памяти new в Си нет.
Во-вторых, при Вашей реализации insert - head будет держать только последний добавленный элемент. Он и будет выводиться. Вот так будет правильней:
1
|
4 / 1 / 0
Регистрация: 14.10.2012
Сообщений: 22
|
|
08.06.2014, 13:27 [ТС] | 5 |
BumerangSP, спасибо!
0
|
08.06.2014, 13:27 | |
08.06.2014, 13:27 | |
Помогаю со студенческими работами здесь
5
Односвязные списки Односвязные списки Односвязные списки С++ Односвязные списки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |