Urmatorul program ofera o modalitate de creare si afisare a unei liste
liniare simplu inlantuite care prelucreaza numere intregi:
#include<iostream.h>
#include<conio.h>
struct nod
{int
info;
nod
*next;};
nod *p,*u ; // acceseaza
primul respective ultimul nod
int n; //numarul
de noduri
void
cre_ad() //functia de creare
si adaugare a unui nou element
{nod *c;
if(!p) //daca lista este vida (p==0) se aloca primul nod
{p=new nod;
cout<<"valoare primului nod ";
cin>>p->info;
u=p; //la creare primul si ultimul nod vor fi identici
}
else //altfel se adauga un nou
element la sfarsit
{ c=new nod; //se aloca un nou nod
cout<<"informatia
utila :";
cin>>c->info; //se completeaza
campul informatie utila
u->next=c; //se adauga
dupa ultimul nod
u=c; //se stabileste noul
nod c ca fiind ultimul
}
u->next=0; //campul adresa urmatoare a ultimului nod este 0
}
void
afis() //functia de afisare
parcurge elementele cu afisare
{nod *c;
c=p; //se
porneste de la primul nod din lista
while(c) //cat timp c retine o adresa
nenula
{cout<<c->info<<" ";//se
afiseza campul informatie utila
c=c->next;} //se avanseaza la urmatoarea adresa, la urmatorul nod
cout<<endl;
}
void main()
{clrscr();
int b;
cout<<"n=";
cin>>n;
for(int i=1;i<=n;i++)
cre_ad( );
cout<<endl;
afis();
getch();
}
Probleme propuse (creare si parcurgere):
1.
Sa
se creeze o LLSI care prelucreaza n numere intregi
a. Sa se afiseze continutul listei
b.
Sa
se mai adauge 2 elemente in lista si sa se afiseze
c.
Sa
se mai adauge m elemente in lista si sa se afiseze
d.
Sa
se numere cate numere prime sunt in lista
e. Sa se determine suma (produsul)
elementelor din lista
f.
Sa
se determine daca lista este ordonata crescator
g. Sa se determine minimul (maximul)
listei
h. Sa se mai creeze o lista care se va adauga
la sfarsitul listei (concatenare). Sa se afiseze lista noua astfel generata
i.
Se vor dubla elementele pentru care suma cifrelor este mai mica decat 10
2.
Sa
se creeze o LLSI care prelucreaza n numere intregi citite din fisier
a. Sa se afiseze continutul listei
b.
Se
vor genera doua liste:una cu elementele pare si alta cu elementele impare
3.
Sa
se formeze o lista care contine elementele unei matrici
4.
Sa
se formeze o lista care contine elementele unui vector
5.
O matrice rara este o matrice cu multe valori nule. Sa se construiasca
matricea pornind de la o lista liniara. Matricea are m linii si n coloane. Fiecare componenta va retine valoarea,
linia si coloana.
6. Sa se determine suma a doua matrici rare
retinute in doua liste. Suma va fi retinuta tot intr-o lista. Se va afisa
rezultatul si ca matrice. Matricile au m linii si n coloane.
7. Sa se memoreze n liste. Sa se
afiseze cea de a x lista
8.
Sa
se genereze o lista care va retine numere intregi si dupa fiecare numar suma
cifrelor sale
9.
Sa
se defineasca un subprogram recursiv de parcurgere a unei liste simple
10. Sa se determine daca doua liste de intregi
au elemente commune
11.
O
lista contine titlul si autorul unei carti, precum si editura. Sa se afiseze
acele carti din lista editate la editura Niculescu
12. Data fiind o lista cu elemente
numere intregi, sa se formeze o a doua lista care contine elementele distincte
din lista data, impreuna cu frecventa lor de aparitie.
13. Intr-o lista simplu inlantuita se
pastreaza coeficientii nenuli ai unui polinom P(X), impreuna cu gradul
monomului respectiv. Sa se calculeze valoarea polinomului P(X) pentru o valoare
data a lui X.
14.
Suma
si produsul a doua polinoame memorate in liste.
15.
Doua
multimi sunt memorate in doua liste distincte. Sa se construiasca o a treia
lista care sa retina intersectia celor doua multimi si o a patra, pentru
reuniune.
16.
Fiind
data o lista de numere intregi sa se genereze o noua lista care va contine
elementele nenule in aceeasi ordine si zerourile la sfarsit
17.
Sa
se creeze o lista care prelucreaza numere complexe. Lista se citeste din fisier
pe fiecare linie fiind scrise doua valori reprezentand partea reala si
respective cea zecimala
a. Sa se afiseze continutul listei
b.
Sa
se determine numarul complex cu modulul cel mai mare
c. Sa se determine suma (produsul)
elementelor din lista
18. Sa se modifice o lista de intregi
interschimband informatiile din lista astfel: prima cu a doua, a treia cu a
patra valoare etc
19.
Fie
o lista simpla care retine intregi. Se va genera o noua lista simpla care va
retine elementele in ordine inversa
20.
Sa se
determine daca doua liste de intregi sunt identice ca si continut.
21.
21.
Sa se memoreze intr-o
lista cuvintele dintr-un fisier text. Sa se determine de cate ori apare un cuvant citit. Sa se afiseze pentru
fiecare cuvant frecventa de aparitie
22.
22.Sa se
afiseze adresa celui de al k element dintr-o lista simpla de intregi. Daca nu
exista un astfel de element se va afisa 0.
23.
24.
25.
Test
1. Fie o lista de
numere intregi distincte. Primele doua valori (cele mai mari) se vor insera la
inceputul listei. Ex:
daca lista retine initial 1 ,3,5, 4,9,25, 14,32 ,11 atunci se va obtine:
25, 32, 1, 3, 5, 4,9,25, 14,32 ,11
2. Sa se
afiseze elementele (elementul) din mijlocul unei liste de intregi
3. Sa se modifice
de k ori o lista astfel incat de fiecare data ultima valoare va fi inserata in
fata. Sa se afiseze de fiecare data. Ex daca lista initiala este:
1, 2, 3, 4, 5, 6,
7, 8, 9 si k=3
se obtine
9, 1, 2, 3, 4, 5,
6, 7, 8
8, 9, 1, 2, 3, 4,
5, 6, 7
7, 8, 9, 1, 2, 3,
4, 5, 6,
4.Fie o lista de
intregi. Sa se genereze o noua lista care sa retina valorile nenule din lista
in aceeasi ordine si zerourile la sfarsit.
5. Se
citeste un numar natural foarte mare, cifra cu cifra. Numarul are n cifre,
n<30.
a. Sa se stocheze cifrele numarului intr-o lista.
b. Sa se afiseze cifrele care apar de
un numar maxim de ori.
Exemplu : Daca n=13 si numarul are cifrele :
4 7 5 8 8 4 3 8 2 1
4 0 9
a. Lista va contine elementele 4 7
5 8 8 4 3 8 2 1 4 0
9
b. Cifrele care apar de un numar maxim de ori sunt 4
si 8
.
26.
Sa
se determine media aritmetica a secventelor de numere impare cuprinse intre
numere pare
Se vor
prelucra datele unor elemente dintr-o aplicatie practica la alegere.(De exemplu: informatii despre
carti, studenti, produse alimentare, produse farmaceutice, elevi, animale de
case de la un pet magazin etc).
Implementati primele operatii necesare prelucrarilor: