myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- Grundlagen von C# (https://www.mycsharp.de/wbb2/board.php?boardid=88)
--- Verkettete Liste rückwärts ausgeben (https://www.mycsharp.de/wbb2/thread.php?threadid=121506)


Geschrieben von nytrec am 24.01.2019 um 14:15:
  Verkettete Liste rückwärts ausgeben
Hallo zusammen,

ich sitze hier vor einer Aufgabe. Ich möchte aus dem Code eine Methode erzeugen, die eine einfach verketteten Liste rückwärts ausgibt.

C#-Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{
    class Listenelement
    {
        string daten;
        Listenelement naechster;

        public void SetDaten(string datenNeu)
        {
            daten = datenNeu;
            naechster = null;
        }

        public void Anhaengen(string datenNeu)
        {
            if (naechster == null)
            {
                naechster = new Listenelement();
                naechster.SetDaten(datenNeu);
            }
            else
            {
                naechster.Anhaengen(datenNeu);
            }
            Console.WriteLine("Sie haben {0} eingefĆ¼gt!", datenNeu);
        }

        public void Ausgeben()
        {
            Console.WriteLine(daten);
            if (naechster != null)
            {
                naechster.Ausgeben();
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Listenelement listenAnfang = new Listenelement();

                listenAnfang.SetDaten("Element 1");
                for (int element = 2; element < 4; element++)
                    listenAnfang.Anhaengen("element " + element);

                listenAnfang.Ausgeben();
            }
        }
    }
}

Ich habe bislang folgendes gemacht:

C#-Code:
Listenelement naechster, vorheriger;

C#-Code:
public void DoppeltVerketteteListe(string datenNeu)
        {
            if (naechster == null)
            {
                naechster = new Listenelement();
                naechster.SetDaten(datenNeu);
            }
            else
            {
                vorheriger.Anhaengen(datenNeu);
                vorheriger = vorheriger.naechster;
            }
        }

Aber das müsste ja eh falsch sein. Ich habe ehrlich gesagt keinen Schimmer, wie ich das mache. Brauche unbedingt Hilfe. :(


Geschrieben von T-Virus am 24.01.2019 um 14:24:
 
Ich hoffe du willst keine eigene verkettet Liste bauen.
C# bietet dafür die LinkedList<T> aus dem Generics Namespace.

Link:
 https://docs.microsoft.com/de-de/dotnet/api/system.collections.generic.linkedlist-1?view=netframework-4.7.2

T-Virus


Geschrieben von nytrec am 24.01.2019 um 14:34:
 
Zitat:
Ich hoffe du willst keine eigene verkettet Liste bauen.

Nein, es dient zum Lernzweck!


Geschrieben von Abt am 24.01.2019 um 15:20:
 
Wo hängst denn?
Musst halt das Element suchen, das kein Nachfolger hat.
Und dann kannst ja jeweils rückwärts gehen...


Geschrieben von ThomasE. am 24.01.2019 um 23:07:
 
Hallo nytrec,

wie sieht denn der aktuelle Code aus? Oder soll das Rückwärts ausgeben mit dem obigen Beispiel Listenelement gemacht werden?

Meine Fragen beziehen sich auf das:

C#-Code:
Listenelement naechster, vorheriger;

da vorheriger oben nicht existiert?


Grüße


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.01.2020 21:49