C láncolt lista párcsere, mégis hogy?
Az a problémám adódott, hogy van egy láncolt listám, amibe szeretném az alábbi módon felcserélni a listaelemeket az adatok másolása nélkül( újraláncolással), ( egyszeresen láncolt).
1->3->5 akkor 3->1->5
de ha páros számú adat van benne akkor 1->3->5->7 , 3->1->7->5
Igazából nem lenne vele probléma, de a return void és csak a struct Node* headet kapom meg paraméterlistán.
Igazából egy régebbi zh példa ( ELTE-n tanulók programozó informatikusnak)
Kódot nem tudok küldeni mivel teljesen nem tudom elkezdeni, ha így kapom meg, ha esetleg struct Node **head-et kapnám meg semmi baj nem lenne.
Köszi előre is a válaszokat!
Ja, hogy masolas nelkul akarod.
Akkor itt nezd az iterativ megoldast:
A dummy node neked nyilvan nem kell, mert nem adod vissza az uj headet.
void swapPairs(listelem *head) {
listelem *node;
while (head && head->next) {
listelem *nxt = head->next;
head->next = nxt->next;
nxt->next = head;
node->next = nxt;
node = head;
head = node->next;
}
}
Így, nem?
Mennek a zöldek közbe, hogy ilyenkor még segítesz nekem:D
Kicsit fáradt vagyok egy egész nap debug után.. D:
helló!
1->3->5 akkor 3->1->5
1->3->5->7 akkor 3->1->7->5
itt mi az átrendezési logika? mi kell hogy történjen 5 vagy több elem esetén?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!