incearca functiile din graphics..
lista:
//legaturile ptr inserare dupa, inainte, etc.. sunt gresite putin, d aia nu da bine..
//si nr1 nr2 stergele ca nu vad sa le folosesti p undeva.
#include<iostream>
struct nod{
int info;
nod* adr_urm;
};
void adaugare(nod*& v, nod*& sf, int val)
{
nod* c;
if(v==0)
{
c=new nod;
v->info=val;
sf->adr_urm=c;
c->info=val;
c->adr_urm=0;
sf=c;
}
else
{
c=new nod;
sf->adr_urm=c;
c->info=val;
c->adr_urm=0;
sf=c;
}
}
void inserare_dupa(nod* v, nod*& sf, int val, ina vall)
{
nod*c=v;
nod* d;
while(c->info!=val)
c=c->adr_urm;
d=new nod;
d->info=vall;
d->adr_urm=c->adr_urm;
c->adr_urm=d;
if(d->adr_urm==0)
sf=d;
}
void inserare_inainte(nod*& v, int val, int vall)
{
nod* c, *d;
if(v->info==val)
{
d=new nod;
d->info=val;
d->adr_urm=v;
v=d;
}
else
{
c=v;
while(c->adr_urm->info!=val)
c=c->adr_urm;
d=new nod;
d->info=vall;
d->adr_urm=c->adr_urm;
c->adr_urm=d;
}
}
void sterg(nod*& v, nod*& sf, int val)
{
nod* c, *man;
if(v->info==val)
{
man=v;
v=v->adr_urm;
}
else
{
c=v;
while(c->adr_urm->info!=val)
c=c->adr_urm;
man=c->adr_urm;
c->adr_urm=man->adr_urm;
if(man==sf)
sf=c;
}
delete man;
}
void listeaza(nod* v)
{
nod* c=v;
while(c)
{
cout<<c->info<<endl;
c=c->adr_urm;
}
}
#include "lista_u.cpp"
nod *v, *sf;
int i;
int main()
{
for(i=1; i<=10; i++)
adaugare(v, sf, i);
listare(v);
inserare_dupa(v, sf, 7, 11);
inserare_dupa(v, sf, 10, 12);
inserare_dupa(v, sf, 1, 13);
listare(v);
inserare_inainte(v, 13, 14);
inserare_inainte(v, 1, 15);
listare(v);
sterg(v, sf, 15);
sterg(v, sf, 13);
sterg(v, sf, 12);
listare(v);
}