Aplicatii liste

 

Aplicatii la liste liniare simplu inlantuite alocate dinamic

 

1.       Sa se implementeze operatiile de baza cu liste liniare simplu inlantuite. Se va realiza cate o functie pentru fiecare operatie:

 

-          crearea listei

 

-          adaugarea unui element la inceputul listei

 

-          adaugarea unui element la sfarsitul listei

 

-           adaugarea unui element in interiorul listei

 

-          stergerea elementului de la inceputul listei

 

-          stergerea elementului de la sfarsitul listei

 

-          stergerea unui element din interiorul listei

 

-          traversarea listei, cu afisarea elementelor acesteia

 

2.       Maximul si minimul elementelor dintr-o lista.

 

3.       Sa se sorteze elementele dintr-o lista

 

4.       Interclasarea a 2 liste ordonate

 

5.       Concatenarea a 2 liste astfel: se adauga lista mai scurta la sfarsitul celei mai lungi.

 

6.       Fiind date 6 nr castigatoare la Loto si o llsi cu nr alese de un jucator, sa se det. cate nr. a ghicit

 

7.       Dintr-un fisier se citesc numere naturale. Sa se formeze o lista care le contine numai pe acelea dintre ele care sunt prime.

 

8.       Sa se formeze o lista care contine elementele unei matrice

 

9.       Fiind data o LLSI ce contine numere naturale, sa se formeze o alta lista care contine numai valorile pare din lista data.

 

10.   Scrieti un subprogra care primeste prin intermediul parametrilor adresele a doua lista si verifica daca ele au vreun element in comun.

 

11.      Sa se creeze n liste cu Ln elemente fiecare

 

12.   Jucatorii de fotbal din divizia A sunt plasati in 16 liste inlantuite (cate o lista pentru fiecare echipa), iar adresele acestor liste sunt plasate intr-o alta lista (tot cu 16 noduri). Scrieti un program care permite unui utilizator sa-si aleaga o echipa din cele 16 si afisati numele jucatorilor din acea echipa.

 

13.   Sa se stearga dintr-o lista de numere intregi toate elementele care sunt mai mici decat 60 si sa se afiseze elementele ramase.

14.   O lista contine titlul si autorul unei carti, precum si editura. Sa se afiseze acele carti din lista editate la editura Niculescu

 

15.   O lista simplu inlantuita contine codurile unor persoane, sumele datorate si un indicator ce are valoarea 1 daca suma a fost achitata si 0 in caz contrar. Sa se afiseze codurile persoanelor care au restanta si sumele datorate.


16.   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.

 

17.   Scrieti un subprogram care, primind ca parametru un pointer catre inceputul unei liste de numere intregi si creeaza alte 2 liste, astfel: in prima se vor introduce numerele pozitive ale listei date, iar in a doua se vor memora numerele negative din lista. Zerourile sunt ignorate.

 

18.   Sa se compare doua liste si sa se afiseze EGALE daca cele doua liste au aceleasi elemente, chiar si in alta ordine si DIFERITE daca au elemente diferite.

 

19.   Se citesc n numere intregi. Sa se construiasca o lista care contine cele n numere in ordinea in care se citesc, astfel incat sa fie in orice moment ordonata, fara a se aplica vreun algoritm de sortare.


20.   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.

 

21.   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.

 

22.   Sa se stearga dintr-o lista toate nodurile cu o valoare data x.

 

23.   Sa se creeze o lista care retine adresele de inceput a n liste. Sa se afiseze cele n liste.


26.   Sa se inverseze legaturile dintr-o lista, fara a se utiliza alta lista.

 

27.   Fiind data o matrice rara, sa se pastreze intr-o lista valorile nenule ale acesteia sub forma (linie, coloana, valoare). Sa se afiseze elementele de pe diagonala principala.

 

28.   Sa se stearga elementele prime dintr-o lista data.

 

29.   Sa se „impinga” toate zerourile dintr-o lista la sfarsitul acesteia, fara a se schimba ordinea elementelor nenule.

 

30.   Sa se insereze intre oricare doua elemente consecutive dintr-o lista media lor aritmetica.

 

31.a) Elevii din clasa voastra participa la un concurs de tir. Punctajul se genereaza in mod aleatoriu (valori de la 0 la 10) iar numele participantilor se va citi din fisier. Vor avea loc 3 randuri de trageri. Pentru fiecare elev  se va afisa puntajul partial iar in final punctajul total pentru toti participantii. Se va afisa concurentul cu punctajul cel mai mare.

Indicatie: pentru generarea unui numar aleator se va folosi functia random(n) care genereaza un numar aleator cu valori intre 0..n-1. Functia randomize() initializeaza generatorul de numere aleatoare  cu prototipul in stdlib.h.

b) modificati aplicatia astfel incat va exista un numar oarecare de trageri, la fiecare tragere eliminandu-se elevul (elevii) cu punctaj minim. In final lista va contine numai concurentul (concurentii in cazul in care mai multi au acelasi punctaj) castigator.

 

32.   Sa se verifice daca elementele unei liste sunt ordonate.

 

34.   Sa se converteasca un numar din baza 10 in baza 2 si invers, folosind LLSI.

 

35.   Suma a doua polinoame.

 

36.   Suma a doua numere foarte mari.

 

37.   Sa se elimine elementul / elementele de la mijlocul unei liste.