Witam, muszę napisać listę jednokierunkową i zaciąłem się na usuwaniu elementu z listy i dodawaniu go na koniec.
Pomoże ktoś?
#include <iostream>
using namespace std;
struct Lista
{
int element;
Lista *next,*prev;
};
void dodaj_pocz(Lista *&L)
{
int v;
cout << "Podaj liczbe" << endl;
cin >> v;
Lista *p;
p=new Lista;
p->element=v;
p->next=L;
L=p;
}
void dodaj_kon(Lista *&L) //jeszcze nie
{
int v;
cout << "Podaj liczbe" << endl;
Lista *p;
p=new Lista;
p->element=v;
p->prev=L;
L=p;
}
void usun_pierwszy(Lista* &L)
{
int v;
Lista *p;
p=new Lista=v
p->element=v;
p->prev=L;
element *tmp=new element;
if(w==NULL)
{
cout << "Lista jest pusta :( ";
}
else
{
tmp=w->nastepny;
delete w;
w=tmp;
}
void wyswietl(Lista *L)
{
Lista *p;
p=L;
while(p)
{
cout<<p->element<<" ";
p=p->next;
}
cout<<endl;
}
int main()
{
Lista *L;
L=NULL;
int w;
do
{
cout<<"1.Dodaj element na poczatek"<<endl;
cout<<"2.Dodaj element na koniec"<<endl;
cout<<"3.Dodaj element na wyznaczone miejsce"<<endl;
cout<<"4.Usun element z poczatku"<<endl;
cout<<"5.Usun element z konca"<<endl;
cout<<"6.Wyswietl"<<endl;
cout<<"7.Koniec"<<endl;
cout<<"Odpowiedz:";
cin>>w;
switch(w)
{
case 1:
dodaj_pocz(L);
break;
case 2:
dodaj_kon(L);
break;
// case 3:
// dodaj_miejsce(L);
// break;
case 4:
usun_pierwszy(L);
break;
//
// case 5:
// usun_kon(L);
//break;
case 6:
wyswietl(L);
break;
}}while(w!=7);
return 0;
}