Hi, ich habe eine Aufgabe bei der ich nicht so richtig weiter komme :
In dieser Aufgabe gehen wir von einer aufsteigend sortierten verketteten Liste aus. Diese Liste kann
Duplikate enthalten, d.h. mehrere Listenelemente können diesselbe Nutzinfo haben. Für die Liste können
Sie folgende Struktur verwenden:
(a) Schreiben Sie eine Funktion SortierteListe* neueSortierteListe(int info), die eine aus einem Element bestehende Liste erzeugt. Dabei soll die Variable data des neuen Listenelements mit dem übergebenen Wert initialisiert werden. Die Funktion soll einen Zeiger auf das einzige Listenelement zurückliefern.
(b) Schreiben Sie eine Funktion SortierteListe* einfuegen(SortierteListe* l,int info), die
ein neues Element mit Nutzinfo info anlegt und an einer korrekten Stelle in die (sortierte) Liste l einfügt. Ein Zeiger auf die veränderte Liste soll zurückgegeben werden.
(c) Schreiben Sie eine Funktion void gibAus(SortierteListe* l), die alle in der Liste l eingetragenenWerte jeweils getrennt durch ein Leerzeichen auf dem Bildschirm ausgibt. Falls die Liste leer ist, soll der Text keine Werte ausgegeben werden.
(d) Schreiben Sie eine Funktion SortierteListe* loeschen(SortierteListe* l,int info), die alle
in der sortierten Liste vorhandenen Elemente mit Nutzinfo info löscht. Ein Zeiger auf die veränderte Liste soll zurückgegeben werden.
(e) Schreiben Sie eine Funktion SortierteListe* verbinde(SortierteListe* l1, SortierteListe*
l2), die zwei sortierte Listen verbindet. Die sich ergebende Liste soll wieder sortiert sein und alle Elemente aus Liste l1 und aus Liste l2 enthalten.
(f) Schreiben Sie eine Funktion SortierteListe* kopiere(SortierteListe* l), die eine übergebene
Liste l elementweise kopiert und einen Zeiger auf die kopierte Liste zurückgibt.
(g) Schreiben Sie eine Funktion SortierteListe* dreheUm(SortierteListe* l), die eine übergebeneListe l elementweise kopiert und dabei die Reihenfolge der Elemente umdreht.
Also zu (a) hab ich das hier:
#include <iostream>
using namespace std;
struct SortierteListe {
int data;
SortierteListe *next;
};
SortierteListe *startZeiger = NULL;
SortierteListe *neueSortierteListe(int info){
SortierteListe *neuesElement = new SortierteListe;
neuesElement->data = info; // Besetze die Daten
neuesElement->next=NULL;
return neuesElement;
}
int main(){
int info;
cout << "gib was ein ";
cin >> info;
neueSortierteListe(info);
system("Pause");
return 0;
}
Alles anzeigen
Kann mir jemand sagen ob das richtig für a ist? bzw mir ansätze für die weiteren aufgaben geben? würde mich freuen!! verstehe listen noch nicht wirklich ganz, nur grob