Добавление нового элемента в конец односвязного списка - C#

Узнай цену своей работы

Формулировка задачи:

Здравствовать всем ! Заклинило меня на одной ,довольно простой задаче. Есть код реализации простого односвязного списка:
Листинг программы
  1. /*######################################
  2. Односвязный список
  3. ######################################*/
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. namespace Cshp05a10
  9. {
  10. class Listenelement
  11. {
  12. string daten;
  13. Listenelement next;
  14. //Метод для ввода данных
  15. public void SetDaten(string datenNeu)
  16. {
  17. daten = datenNeu;
  18. //обозначаем конец списка
  19. next = null;
  20. }
  21. // Метод для ввода нового элемента
  22. public void AddNext(string datenNeu)
  23. {
  24. if (next == null)
  25. {
  26. next = new Listenelement();
  27. next.SetDaten(datenNeu);
  28. }
  29. else
  30. next.AddNext(datenNeu);
  31. }
  32. //Метод для вывода списка
  33. public void PrintOut()
  34. {
  35. Console.WriteLine(daten);
  36. if (next != null)
  37. next.PrintOut();
  38. }
  39. }
  40. class Program
  41. {
  42. static void Main(string[] args)
  43. {
  44. //ссылка для нового элемента
  45. Listenelement listenBeginn = new Listenelement();
  46. //вводим данные для первого элемента
  47. listenBeginn.SetDaten("Element 1");
  48. //прицепляем следующие элементы
  49. for (int element = 2; element < 4; element++)
  50. listenBeginn.AddNext("Element " + element);
  51. //выводим список
  52. listenBeginn.PrintOut();
  53. }
  54. }
  55. }
Требуется изменить код, чтобы новый элемент цеплялся сразу в конец списка , не проходя по всему списку. Я пытался возле ссылки на начало списка создать ссылку на конец списка Listenelement listenEnd = new Listenelement(); Пытаюсь изменить метод AddNext , одна из попыток :
Листинг программы
  1. // Метод для ввода нового элемента
  2. public void AddNext(string datenNeu)
  3. {
  4. if (next != null)
  5. {
  6. next.AddNext(datenNeu);
  7. }
  8. else
  9. next = new Listenelement();
  10. next.SetDaten(datenNeu);
  11. }
затем в конце главного добавить listenEnd.PrintOut(); Понимаю что это примитивно , также понимаю что решение долно быть простым , но... Заранее благодарен всем кто ответит и отчехвостит меня за тупость.

Решение задачи: «Добавление нового элемента в конец односвязного списка»

textual
Листинг программы
  1. Listenelement listenEnd = new Listenelement();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы