Biblioteca…
description
Transcript of Biblioteca…
Biblioteca…
cerinta…Se citeste din fisierul Biblioteca(1).in sirul
ce contine numarul de pagini ale cartilor (ex: 352, 56, 85, 251, 12, 642, 1250)
a)Sa se creeze stiva 1 care sa contina numerele paginilor mai mici decat 200
b)Sa se creeze stiva 2 care sa contina numerele paginilor mai mari decat 201
c)Sa se afiseze stivele.d)Sa se ordoneze stiva 1e)Sa se elimine el minim din stiva 1f)Sa se afiseze stiva 1
exemplu…
punctul a) (secventa c++)a)Sa se creeze stiva 1 care sa contina numerele paginilor mai mici decat 200
while(f>>x){
if (x<=200) push(varf,x);
}
void push(nod *&varf,int x){
nod *p;p=new nod;p->pag=x;p->urm=varf;varf=p;
}
85
12
56
punctul b) (secventa c++)b)Sa se creeze stiva 2 care sa contina numerele paginilor mai mari decat 201
while(g>>x){
if (x>201) push(varf1,x);
}void push(nod *&varf,int x){
nod *p;p=new nod;p->pag=x;p->urm=varf;varf=p;
}
352
251
642
1250
punctul c) (secventa c++) c)Sa se afiseze stivele
void parcurgere(nod *varf(1))
{
nod *p;
p=varf(1);
while(p)
{
cout<<" "<<p->pag;
p=p->urm;
}
}
85
12
56
352
251
642
1250
punctul d) (secventa c++)d)Sa se ordoneze stiva 1
void ordonare(nod *varf)
{
nod *a, *b;
int aux;
a=varf;
while(a){
b=a;
while(b){
if(a->pag > b->pag){
aux = a->pag;
a->pag = b->pag;
b->pag = aux;}
b=b->urm;
}
a=a->urm;
}
}
85
12
ok
ok
interschimbare
punctul d) (secventa c++)d)Sa se ordoneze stiva 1
void ordonare(nod *varf)
{
nod *a, *b;
int aux;
a=varf;
while(a){
b=a;
while(b){
if(a->pag > b->pag){
aux = a->pag;
a->pag = b->pag;
b->pag = aux;}
b=b->urm;
}
a=a->urm;
}
}
12
ok
ok
interschimbare
85
punctul e) (secventa c++)e)Sa se elimine el minim din stiva 1
void pop(nod *&varf)
{
nod *p;
p=varf;
varf=varf->urm;
delete p;
}
56
12
85
punctul f) (secventa c++)e)Sa se afiseze stiva 1
void parcurgere(nod *varf)
{
nod *p;
p=varf;
while(p)
{
cout<<" "<<p->pag;
p=p->urm;
}
} 56
85