Pereiti prie turinio

Pagalbos su dvikryptčių tiesiniu sąrašu C++


Rekomenduojami pranešimai

Sveiki,

Gal kas galėtumetė padeti su dvikrypčių tiesinių sąrašu?

Kaip nueiti iki 3 nuo galo elemento ir jį ištrinti arba įterpti i jo vietą naują elementą?

Bandžiau iki 3 nuo galo elemento nueiti taip:

elementas * temp=galas;
temp->data;
temp=temp->prev;
temp->data;
temp=temp->prev;
temp->data;
temp=temp->prev;

 

Viskas kaip ir ok, spausdina 3 nuo galo elementą, bet negaliu padaryti auksčiau išvardintų veiksmų ;/ gal kas pagelbėtų?

 

Kodas:

#include <iostream>
using namespace std;
struct elementas
{
   int data;
   elementas *next;
   elementas *prev;
};
int main()
{
   cout << "Evaldas Kislovskis, IS18A, tiesinis dvikryptis sarasas"<<endl;
   elementas *pirmas;
   elementas *naujas;
   elementas *galas;
   elementas *temp;
   int n;
   cout << "Is kiek elementu bus sudarytas sarasas? ";
   cin >> n;
   naujas = new elementas;
   cout << "Iveskite 1 elementa: ";
   cin >> naujas->data;
   naujas->prev=NULL;
   pirmas=naujas;
   for(int i=1; i<n; i++)
   {
       temp=naujas;
       naujas->next=new elementas;
       naujas=naujas->next;
       cout << "Iveskite " << i+1 << " elementa: ";
       cin >> naujas->data;
       naujas->prev=temp;
   }
   galas=naujas;
   int funkcija;
   while (true)
   {
       cout << endl <<endl;
       cout << "*******************************" << endl;
       cout << "1. Saraso spausdinimas" << endl;
       cout << "-------------------------------" << endl;
       cout << "2. Saraso spausdinimas nuo galo" << endl;
       cout << "-------------------------------" << endl;
       cout << "3. Elemento iterpimas i pradzia" << endl;
       cout << "-------------------------------" << endl;
       cout << "4. Elemento iterpimas i gala" << endl;
       cout << "-------------------------------" << endl;
       cout << "5. Pirmo elemento trinimas" << endl;
       cout << "-------------------------------" << endl;
       cout << "6. Paskutinio elemento trinimas" << endl;
       cout << "-------------------------------" << endl;
       cout << "7. Viso tiesinio saraso istrinimas" << endl;
       cout << "*******************************" << endl << endl;
       cout << "Pasirinkite funkcija: " ;
       cin >> funkcija;
       cout << endl <<endl;
       if(funkcija==1)
       {
           naujas=pirmas;
           for(int i=0; i<n; i++)
           {
               cout << naujas->data << "->";
               naujas=naujas->next;
           }

       }
       if (funkcija==2)
       {
           naujas=galas;
           for(int i=0; i<n; i++)
           {
               cout << naujas->data << "->";
               naujas=naujas->prev;
           }

       }
       if(funkcija==3)
       {
           naujas = pirmas->prev;
           naujas = new elementas;
           naujas->next=pirmas;
           pirmas->prev=naujas;
           pirmas=naujas;
           int iterpiamas;
           cout << "Iveskite elementa kuri norite iterpti: ";
           cin >> iterpiamas;
           pirmas->data=iterpiamas;
           n++;
       }
       if(funkcija==4)
       {
           naujas = galas->next;
           naujas = new elementas;
           galas->next=naujas;
           naujas->prev=galas;
           galas=naujas;
           int iterpiamas;
           cout << "Iveskite elementa kuri norite iterpti: ";
           cin >> iterpiamas;
           galas->data=iterpiamas;
           n++;
       }
       if(funkcija==5)
       {
           naujas=pirmas->next;
           delete(pirmas);
           pirmas=naujas;
           n--;
           cout << "Pirmas elementas istrintas!";
       }
       if(funkcija==6)
       {
           naujas=galas->prev;
           delete(galas);
           galas=naujas;
           n--;
           cout << "Paskutinis elementas pasalintas!";
       }
       if(funkcija==7)
       {
           naujas=pirmas;
           for(int i=0; i<n; i++)
           {
               pirmas=naujas->next;
               delete(naujas);
               naujas=pirmas;
           }
           n=0;
           cout << "Sarasas sekmingai istrintas!";
       }
       if(funkcija==8)
       {
           naujas=pirmas;
           for(int i=0; i<n-3; i++)
           {
               cout << naujas->data << "->";
               naujas=naujas->next;            }
       }
       if(funkcija>7)
       {
           cout <<endl<< "Tokios funkcijos nera!" <<endl;
       }
   }
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...