protected
Goto Top

Verkettete Listen

Hallo,

ich habe schon gegoogelt, aber komme nicht auf die Lösung. Und zwar soll der Benutzer einen Wert eingeben, und eine Zahl, wovor der Wert stehen soll. Dies soll in der Funktion einfuegen realisiert werden.

Kann mir jemand melden?

#include <iostream> 
using namespace std; 

struct TListenKnoten { int data;     TListenKnoten *next; };


void hinten_anfuegen(TListenKnoten* &anker, int wert) { 
	TListenKnoten *neuer_eintrag = new TListenKnoten;  
	neuer_eintrag->data = wert;  
	neuer_eintrag->next = nullptr;
	if (anker == nullptr)
		anker = neuer_eintrag;
	else { 
		TListenKnoten *ptr = anker;
		while (ptr->next != nullptr)
			ptr = ptr->next;
			ptr->next = neuer_eintrag; 
	} 
}
void liste_ausgeben_rueckwaerts(TListenKnoten* anker) {

	if (anker->next != NULL)

		liste_ausgeben_rueckwaerts(anker->next);
	if (anker->next != NULL) {
		cout << ", ";  
	}
	cout << anker->data;
}
void einfuegen(TListenKnoten* &anker, int wert_neu, int vor_wert) {


	for (int i = 0; i < 12; i++) {

		while (anker->next != NULL && anker->next->data < vor_wert) {

			anker = anker->next;


		}
		

	}
	hinten_anfuegen(anker, wert_neu);
}
void liste_ausgeben(TListenKnoten * anker) { 
	if (anker == nullptr)   
		cout << "Leere Liste." << endl;   
	else { 
		cout << "[ ";   TListenKnoten *ptr = anker;     
		
		do { 
			cout << ptr->data; 
			if (ptr->next != nullptr) 
				cout << " , ";   
			else
				cout << " ";    ptr = ptr->next;  
		
		} 
		
		while (ptr != nullptr);
		cout << "]" << endl;   
	} 
}

int main() {
	int laenge = 10;
TListenKnoten *anker = nullptr;
for (int i = 0; i < laenge; i++) {
	hinten_anfuegen(anker, i*i);
}
liste_ausgeben(anker);

int wert_neu, vor_wert;
cout << "Einzufuegender Wert: ";  
cin >> wert_neu;
cout << "Vor welchem Wert? ";  

cin >> vor_wert;
einfuegen(anker, wert_neu, vor_wert);
liste_ausgeben(anker);
system("PAUSE");  
return 0;
}

Content-Key: 323258

Url: https://administrator.de/contentid/323258

Printed on: April 19, 2024 at 15:04 o'clock