Just nu i M3-nätverket
Jump to content

Kopiera Länkad lista!


Arne Karlsson

Recommended Posts

Arne Karlsson

Hej!

 

Är det någon som vet ett lätt sätt att kopiera en länkad lista, kopian ska ha en annan adress i minnet. Har försökt med koden nedan, men bara den sista posten kopieras.

/* copy polynom */

Polynomial CopyPolynom(const Polynomial LTemp){

List L;

PtrToNode Term = NULL;

Position PTemp, P;

int i =1, Coeff = 0, Exp = 0;

 

L = NULL;

L = MakeEmpty(L); // funktion som initierar L

PTemp = LTemp->Next;

P = L;

 

while (PTemp != NULL){

Term = malloc(sizeof(struct Node));

if (Term == NULL)

FatalError("Out of memory!");

 

Coeff = PTemp->Coefficient;

Exp = PTemp->Exponent;

Term->Coefficient = Coeff;

Term->Exponent = Exp;

P->Next = Term;

Term->Next = NULL;

PTemp = PTemp->Next;

}

return P;

}

 

Mvh Arne

 

Link to comment
Share on other sites

Såvitt jag kan se så "flyttas" aldrig P fram i slutet av while-satsen.

Endast den första noden kommer att ändras hela tiden och till slut innehåller den den sista noden som skulle kopieras.

 

P = P->next;

i slutet av while-satsen borde fixa saken.

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...