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

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

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

Здравствовать всем ! Заклинило меня на одной ,довольно простой задаче. Есть код реализации простого односвязного списка:
/*######################################
Односвязный список
######################################*/
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Cshp05a10
{
 
    class Listenelement
    {
        string daten;
        Listenelement next;
 
        //Метод для ввода данных
        public void SetDaten(string datenNeu)
        {
            daten = datenNeu;
            //обозначаем конец списка
            next = null;
        }
        // Метод для ввода нового элемента
        public void AddNext(string datenNeu)
        {
            if (next == null)
            {
                next = new Listenelement();
                next.SetDaten(datenNeu);
            }
            else
                next.AddNext(datenNeu);
        }
 
        //Метод для вывода списка
        public void PrintOut()
        {
            Console.WriteLine(daten);
            if (next != null)
                next.PrintOut();
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            //ссылка для нового элемента
            Listenelement listenBeginn = new Listenelement();
 
            //вводим данные для первого элемента
            listenBeginn.SetDaten("Element 1");
 
            //прицепляем следующие элементы
            for (int element = 2; element < 4; element++)
                listenBeginn.AddNext("Element " + element);
 
            //выводим список
            listenBeginn.PrintOut();
        }
    }
}
Требуется изменить код, чтобы новый элемент цеплялся сразу в конец списка , не проходя по всему списку. Я пытался возле ссылки на начало списка создать ссылку на конец списка Listenelement listenEnd = new Listenelement(); Пытаюсь изменить метод AddNext , одна из попыток :
 // Метод для ввода нового элемента
        public void AddNext(string datenNeu)
        {
            if (next != null)
            {
                next.AddNext(datenNeu);
            }
            else
                 next = new Listenelement();
                next.SetDaten(datenNeu);
        }
затем в конце главного добавить listenEnd.PrintOut(); Понимаю что это примитивно , также понимаю что решение долно быть простым , но... Заранее благодарен всем кто ответит и отчехвостит меня за тупость.

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

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

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


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

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

13   голосов , оценка 4.154 из 5
Похожие ответы