Pagini recente » Cod sursa (job #2076710) | Cod sursa (job #1376374) | Cod sursa (job #2938756) | Cod sursa (job #1046027) | Cod sursa (job #639690)
Cod sursa(job #639690)
//lista dublu inlantuita,inseram un
#include<iostream.h>
#include<fstream.h>
fstream f("exe3.in",ios::in), g("exe3.out",ios::out);
struct nod
{
int info;
nod *st,*dr;
};
nod *prim,*sf;
void citire(nod *&prim,nod *&sf,int nr);
void afisare(nod *&prim,nod *&sf);
void adaug(nod *&prim,nod *&sf,int x);
int n;
int main()
{
int x;
while(f>>x && x!=0)
citire(prim,sf,x);
f>>x;
adaug(prim,sf,x);
afisare(prim,sf);
return 0;
}
void citire(nod *&prim,nod *&sf,int nr)
{
nod *p,*q;
p=new nod;
p->info=nr;
p->st=0;
p->dr=0;
if(prim==0)
{ prim=p;
sf=p;
}
else
{
q=sf;
q->dr=p;
p->st=q;
sf=p;
}
}
void afisare(nod *&prim,nod *&sf)
{
nod *p;
p=prim;
while(p->dr!=0)
{ cout<<p->info<<" ";
p=p->dr;
}
cout<<p->info;
}
void adaug(nod *&prim,nod *&sf,int x)
{
nod *p,*q,*z;
p=prim;
q=sf;
while(p->dr!=q->st && p->dr!=q)
{
p=p->dr;
q=q->st;
}
if(p->dr==q)
{
z=new nod;
p->dr=z;
z->st=p;
z->dr=q;
z->info=x;
q->st=z;
}
else
{
p=p->dr;
z=new nod;
p->dr=z;
z->st=p;
z->dr=q;
z->info=x;
q->st=z;
}
}