• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Lista w liście

0 głosów
2,359 wizyt
pytanie zadane 5 stycznia 2019 w C i C++ przez niezalogowany

Witam, mam problem z listą w liście 

struct Opis {

	string etykieta;
	Opis *next1;

};

struct Ksiazka {
	string autor;
	string tytul;
	Opis *ls;
	Ksiazka *next;

};
                getline(plik,autor1,';');
 		getline(plik,tytul1,';');
		getline(plik, etykieta1);
		Ksiazka* nowa = new Ksiazka;
		nowa->autor = autor1;
		nowa->tytul = tytul1;
		nowa->next = glowa;
		glowa = nowa;
		Opis* nowa1 = new Opis;
		nowa->next->ls->next1->etykieta = etykieta1;
		nowa1->next1 = glowa1;
		glowa1 = nowa1;

Chciałbym żeby dla każdego elementu listy tworzyła się podlista z etykietami, np mam Autora, Tytuł i 2 różne etykiety które są wpisane do listy Opis i podłączone do tego szczególnego Autora i Tytułu, próbowałem już na różne sposoby ale nie za bardzo wiem co i jak jeśli chodzi o takie zagnieżdżone listy, jeśli ktoś mógłby poratować jakąś wskazówką, albo czymś co pomogłoby mi zrozumieć jak poprawnie się odwołać do tej wewnętrznej listy byłbym niezmiernie wdzięczny!

komentarz 5 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
To raczej mala propozycja, anie odpowiedz, bo nie wiem czy to dovry tip. Nie mozna zrobic 3 struktury i w tej strukturze umiescic te 2 i dopiero dla tej 3 struktury utworzyc liste?
komentarz 5 stycznia 2019 przez niezalogowany
Problem w tym że tych etykiet może być różna ilość plus prowadzący ćwiczenia powiedział że to najprostszy sposób na rozwiązanie tego.
komentarz 5 stycznia 2019 przez j23 Mędrzec (195,240 p.)

@Soviet, jakoś tak powinno być:

Ksiazka* nowa = new Ksiazka;
nowa->autor = autor1;
nowa->tytul = tytul1;
nowa->next = glowa;
nowa->ls = nullptr;
glowa = nowa;


Opis* o = new Opis;
o->etykieta = etykieta1;
o->next = nowa->ls;
nowa->ls = o;

 

komentarz 6 stycznia 2019 przez niezalogowany

Mógłbyś jeszcze rzucić okiem na pętlę wypisującą? Ewidentnie robię coś źle ale nie wiem do końca co(mam tylko nadzieję że nie wszystko)

	Ksiazka* wsk_p;
	Opis* wsk_q;
	for (wsk_p = glowa; wsk_p != nullptr; wsk_p = wsk_p->next)
	{
		cout << wsk_p->autor << " " << wsk_p->tytul << endl;
		for (wsk_q = wsk_p->ls; wsk_q != nullptr; wsk_q = wsk_q->next1)
		{
			cout << "   " << wsk_q->etykieta << endl;
		}
	}

 

komentarz 6 stycznia 2019 przez j23 Mędrzec (195,240 p.)
Pętla wygląda dobrze. Problem może być przy tworzeniu list.
komentarz 6 stycznia 2019 przez niezalogowany
Ok, pewnie jest problem z wpisywaniem bo też się z tym męczyłem ale to w takim razie już powinienem sobie to sam ogarnąć, dzięki wielkie za wszystko.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 465 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
0 głosów
1 odpowiedź 160 wizyt
+1 głos
1 odpowiedź 194 wizyt

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...