Односвязный Список C#

Тема в разделе "Свободное общение", создана пользователем ЮрийПрп, 8 дек 2014.

  1. ЮрийПрп

    ЮрийПрп New Member

    Регистрация:
    27 сен 2013
    Сообщения:
    3
    Симпатии:
    0
    Здравствовать всем !
    Заклинило меня на одной ,довольно простой задаче.
    Есть код реализации простого односвязного списка: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 = new Listenelement();
    next.SetDaten(datenNeu);
    }
    }
    затем в конце главного добавить
    listenEnd.PrintOut();
    Понимаю что это примитивно , также понимаю что решение
    долно быть простым , но...
    Заранее благодарен всем кто ответит.
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    Можно сделать более консервативную реализацию)
    Код (C++):
    //
    namespace CS_temp
    {
    struct Node
    {
    string data;
    Node next;
    }
    class MyList
    {
    Node Head, Tail;
    int Length;
    public void Push(Node newNode);
    public void show();

    //....
    }
    //
     
Загрузка...
Похожие Темы - Односвязный Список
  1. gx6060
    Ответов:
    2
    Просмотров:
    433
  2. gx6060
    Ответов:
    6
    Просмотров:
    569
  3. Shandrik
    Ответов:
    6
    Просмотров:
    810
  4. anna
    Ответов:
    8
    Просмотров:
    813
  5. erhe
    Ответов:
    10
    Просмотров:
    791

Поделиться этой страницей