Python týden Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python

Diskuze: Prepojeny zoznam

Aktivity (2)
Avatar
Philip Recek
Člen
Avatar
Philip Recek:27. dubna 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. dubna 21:38
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 1 zpráv z 1.