Just nu i M3-nätverket
Gå till innehåll

Kopiera Länkad lista!


Arne Karlsson

Rekommendera Poster

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

 

Länk till kommentar
Dela på andra webbplatser

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.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...