NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Prepojeny zoznam

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Philip Recek
Člen
Avatar
Philip Recek:27.4.2019 21:38

Zdravim potreboval by som poradit. Snazil som sa vytvorit jednoduchy prepojeny zoznam ale natrafil som na chybu s ktorou si neviem poradit. Ide o to ze ked sa pokusim vymazat nejaky prvok v zozname (napr. 6. v poradi) a potom sa snazim pridat novy prvok do zoznamu tak dostanem chypu core dumped. Podla mna je to chyba v remove funkcii ale neviem ju ani za svet najst.

Zkusil jsem:

63     void player::add(const field * ukField){
64         numOfPropertys++;
65         node* newNode = new node(ukField);
66         node* aktual = property;
67
68         std::cout << "(money): " << money << " $ - " << ukField->returnPrize() << " $ = " << (money -= ukField->returnPrize()) << " $" << std::endl;
69
70         if(property == nullptr) property = newNode; // if this is first property
71         else{
72             if(ukField->returnPrize() >= property->ukData->returnPrize()){
73                 newNode->next = property;
74                 property = newNode;
75             }
76             else{
77                 while(true){
78                     if(aktual->next == nullptr){
79                         aktual->next = newNode;
80                         break;
81                     }
82                     if(ukField->returnPrize() >= aktual->next->ukData->returnPrize()){
83                         newNode->next = aktual->next;
84                         aktual->next = newNode;
85                         break;
86                     }
87
88                     aktual = aktual->next;
89                 }
90             }
91         }
92     }
93
102     void player::remove(const ushort & num){
103         numOfPropertys--;
104         node * aktual = property;
105         node * temporary;
106
107         for(int i = 0; i < num - 2; i++){
108             aktual = aktual->next;
109         }
110
111         if(num == 1){
112             temporary = aktual;
113             property = property->next;
114         }
115         else{
116             temporary = aktual->next;
117             aktual->next = aktual->next->next;
118         }
119         std::cout << "sold //(money): " << money << " $ +" << temporary->ukData->returnPrize() << " $ = " << (money += temporary->ukData->returnPrize()) << " $\n" << std::endl;
120
121         delete temporary;
122     }

Chci docílit: Parameter num vo funkcii remove je ktory prvok v poradi chcem vymazat.
Fakt dakujem za kazdu radu.

 
Odpovědět
27.4.2019 21:38
Avatar
JerryM
Člen
Avatar
JerryM:21.6.2019 13:06

máš to napsaný blbě ... všechno ..
nejdřív ukaž jak vypadá ta struktura buňky na kterou se napojujou ukazatele

 
Nahoru Odpovědět
21.6.2019 13:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.