Informatică, întrebare adresată de Gashparz, 8 ani în urmă

Cum inversezi o lista simplu inlantuita fara memorie suplimentara

Răspunsuri la întrebare

Răspuns de S0unds
0

//Te folosesti de interschimbarea prin adunare:

//a=a+b;

//b=a-b;

//a=a-b;

// sau poti folosi prin xor

//x ^= y;

//y ^= x;

//x ^= y;

//Ideea e sa nu te folosesti de alte variabile. Uite un exemplu:

#include <iostream>

using namespace std;

int main()

{

   int n,v[]={2, 3, 8, 45, 32, 28};

   n=6;

   for(int i=0;i<n/2;i++)

   {

       v[i]=v[i]+v[n-i-1];

       v[n-i-1]=v[i]-v[n-i-1];

       v[i]=v[i]-v[n-i-1];

   }

   for(int i=0;i<n;i++)

   cout<<v[i]<<' ';

   return 0;

}

Alte întrebări interesante