Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Weird List  (Citit de 3090 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« : Martie 16, 2012, 21:31:20 »

http://infoarena.ro/blog/weird-list
Memorat
rgrig
De-al casei
***

Karma: 46
Deconectat Deconectat

Mesaje: 144



Vezi Profilul WWW
« Răspunde #1 : Martie 16, 2012, 23:46:26 »

Poti sa aloci clona contiguu (cu malloc(sizeof(node)*size)) sau trebuie fiecare nod separat?
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #2 : Martie 16, 2012, 23:51:36 »

Fiecare nod separat.
Memorat
MciprianM
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« Răspunde #3 : Martie 17, 2012, 00:12:49 »

Se poate sa existe doua noduri diferite care sa aiba cel de-al doilea pointer spre acelasi element?
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #4 : Martie 17, 2012, 00:19:35 »

da
Memorat
mihai_florea
Strain


Karma: 17
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #5 : Martie 17, 2012, 00:40:51 »

Parcurgem lista de 2 ori. Prima data pentru fiecare nod original, cream un nou nod si pentru acesta setam pointarul random spre pointerul random original din lista data, iar pointerul random al nodului original il setam catre nodul nou creat. La a 2-a parcurgere "corectam" legaturile.

Niste "pseudocod" ca sa fie mai clar:

Cod:
x = first;
prev = null;
while (x != null) {
   y = new Node();
   if (prev != null) prev->next = y;
   y->rnd = x -> rnd;
   x->rnd = y;
   x = x->next;
   prev = y;
}

for (x = first; x != NULL; x=x->next) {
   y = x->rnd;
   x->rnd = y->rnd;
   y->rnd = y->rnd->rnd;
}

Dap nu merge in caz ca exista legaturi random inapoi in lista.
« Ultima modificare: Martie 17, 2012, 01:46:13 de către Florea Mihai Alexandru » Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #6 : Martie 17, 2012, 00:42:51 »

edit

Hmm, cred ca le incurci pe acolo. Verifica pe cateva exemple.
« Ultima modificare: Martie 17, 2012, 00:51:11 de către Cosmin Negruseri » Memorat
MciprianM
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« Răspunde #7 : Martie 17, 2012, 00:53:26 »

Si eu cred ca am gasit solutia:

http://pastie.org/private/kyheitcuspp4bosfxhkq
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #8 : Martie 17, 2012, 00:56:15 »

Da Ciprian, a ta e buna  Thumb up Cred ca tre sa pun probleme mai grele Smile.
Memorat
skipy
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #9 : Martie 20, 2012, 20:17:03 »

Se poate modifica lista originala?
Memorat

Cheap VR WoW could destroy modern society...
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #10 : Martie 21, 2012, 21:46:52 »

Da.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines