Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- typedef int adresa;
- struct nod
- {
- int info;
- adresa urm;
- };
- nod L[1000];
- int elem=0;
- adresa ocupat[1000],v,f;
- int spatiu()
- {
- return elem<1000;
- }
- void nadd(adresa &x)
- {
- adresa i=1;
- while (ocupat[i])
- i++;
- x=1;
- ocupat[i]=1;
- elem++;
- }
- void ncl(adresa x)
- {
- ocupat[x]=0;
- elem--;
- }
- void add(adresa &v,int val)
- {
- int c;
- if(!v)
- {
- nadd(v);
- L[v].info=val;
- L[v].urm=0;
- f=v;
- }
- else
- {
- if(spatiu())
- {
- nadd(c);
- L[f].urm=c;
- L[c].info=val;
- L[c].urm=0;
- f=c;
- }
- else cout<<"lipsa spatiu"<<endl;
- }
- }
- void addaf(adresa v,int val,int val1)
- {
- adresa c,d;
- if(spatiu ())
- {
- c=v;
- while(L[c].info!=val)
- c=L[c].urm;
- nadd(c);
- L[d].info=val1;
- L[d].urm=L[c].urm;
- L[c].urm=d;
- if(L[d].urm==0)
- f=d;
- }
- else cout<<"lipsa spatiu";
- }
- void addbe(adresa &v,int val,int val1)
- {
- adresa c,d;
- if(spatiu())
- if(L[v].info==val)
- {
- nadd(d);
- L[d].info=val1;
- L[d].urm=v;
- v=d;
- }
- else
- {
- c=v;
- while(L[L[c].urm].info!=val)
- c=L[c].urm;
- nadd;
- L[d].info=val1;
- L[d].urm=L[c].urm;
- L[c].urm=d;
- }
- else cout<<"lipsa spatiu"<<endl;
- }
- void cl (adresa &v,int val)
- {
- adresa c,man;
- if(L[v].info==val)
- {
- man=v;
- v=L[v].urm;
- }
- else
- {
- c=v;
- while(L[L[c].urm].info!=val)
- c=L[c].urm;
- man=L[c].urm;
- L[c].urm=L[man].urm;
- if(man=f)
- f=c;
- }
- ncl(man);
- }
- void out (adresa v)
- {
- adresa c=v;
- while(c)
- {
- cout<<L[c].info<<" ";
- c=L[c].urm;
- }
- cout<<endl;
- }
- int srch (int x)
- {
- int p;
- while (p&&L[p].info!=x)
- p=L[p].urm;
- return(p);
- }
- int main()
- {
- int i;
- for(i=1;i<=10;i++)
- add(v,i);
- out(v);
- addaf(v,1,15);
- out(v);
- addaf(v,10,25);
- out(v);
- addbe(v,3,44);
- out(v);
- cl(v,10);
- outa(v);
- for(i=1;i<=elem;i++)
- if(L[i].info%2==0)
- cout<<i;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement