Sunteți pe pagina 1din 4

Liste liniare simplu înlănţuite. Creare.

Parcurgere

1. Pentru o listă linjară simplu înlănţuită ale cărei elemente întregi se citesc de la tastatură să se realizeze următoarele prelucrări:

a. Să se afişeze conţinutul listei


b. Să se afişeze pătratele perfecte din listă
c. Să se numere câte numere prime sunt în listă. În cazul în care lista nu conţine numere prime se Va afişa un mesaj
d. Să se determine dacă lista este ordonată Crescător
e. Să se determine Valoarea maximă din listă şi de câte ori apare aceasta în listă
f. Se vor dubla elementele pentru care suma cifrelor este mai mică decât 10

2. Pentru o listă liniară simplu înlănţuită ale cărei componente întregi se citesc de la tastatură să se realizeze următoarele prelucrări:

a. Să se dubleze valoarea ultimului număr par din listă


b. Să se tripleze Valoarea primului număr par din listă
c. Să se micşoreze cu o LLnitate Valoarea penultimului număr par din listă.

3. Pentru o listă liniară simplu înlănţuită care memorează cel puţin 4 componente întregi care se citesc de la tastatură să se realizeze următoarele
prelucrări: să se mute la sfârşitul listei primele două componente astfel încât cea de a doua componentă să devină ultima în timp ce ultimele două
componente vor trece la începutul listei astfel încât ultima componentă va deveni a doua.

Exemplu. dacă lista memorează iniţial valorile 1, 2, 3, 4, 5, 6 în această ordine se va obţine: 5, 6, 3, 4, 1, 2

4. Pentru o listă liniară simplu înlănţuită care memorează cel puţin 4 componente întregi care se citesc de la tastatură să se realizeze următoarele
prelucrări: să se mute prima jumătate a listei la sfârşitul listei. Dacă lista conţine număr impar de componente elementul din mijloc va deveni primul.

Exemplu. dacă lista memorează iniţial valorile 1, 2, 3, 4, 5, 6, 7, 8, 9 în această ordine se va obţine: 5, 6, 7, 8, 9, 1, 2, 3, 4

5. Să se memoreze numerele întregi din fişierul date.in într-0 listă liniară simplu înlănţuită

a. Să se afişeze conţinutul listei şi numărul componentelor listei

b. Să se genereze două liste: una care memorează numerele prime din prima listă iar cealaltă care memorează numerele neprime

6. Să se memoreze numerele întregi dintr-un tablou unidimensional intr-o listă liniară simplu înlănţuită

7. Să se memoreze numerele întregi dintr-un tablou bidimensional într-o listă liniară simplu înlănţuită

8. O matrice rară este o matrice cu multe valori nule. Valorile unei astfel de matrice se va memoră într-o listă liniară simplu înlănţuită. Se citesc de la
tastatură numărul m de linii şi numărul n de coloane pentru o matrice. Fiecare componentă a listei va reţine o valoare nenulă, linia şi coloana valorii
respective în matrice.

a. Să se afişeze conţinutul liste în format liniar

b. Să se afişeze conţinutul listei în format matriceal

c. Să se determine suma a doua matrice rare reţinute în două liste. Suma va fi reţinută tot într~o listă. Se va afişa rezultatul în format matriceal.
Matricele au m linii şi n coloane.

9. Din fişierul date.in se citesc de pe prima linie un număr natural n (n<=1OO) apoi de pe următoarele n linii un număr natural m la începutul fiecărei
linii apoi m numere întregi. Conţinutul fiecărei linii se va memora intr-o listă liniară simplu înlănţuită.

a. Să se afişeze listele la ecran, fiecare pe rând nou

b. Să se afişeze lista care memorează cele mai multe pătrate perfecte. În cazul în care există mai multe astfel de liste se va afişa prima.

c. Să se determine câte liste memorează numai valori nenule.

10. Să se genereze o listă liniară simplu înlănţuită care memorează numerele naturale din fişierul date.in iar după fiecare număr se memorează în listă
şi numărul cifrelor sale.

Exemplu. Dacă fişierul are următorul conţinut:


-45, 235, 89, 2345, 4, -78, -2, 44

conţinutul listei va fi: 235, 3, 89, 2, 2345, 4, 4, 1, 44, 2

11. Să se definească un subprogram recursiv care afişează conţinutul unei liste liniare simplu înlănţuită.

12. Să se definească un subprogram recursiv care afişează conţinutul unei liste liniare simplu înlănţuită în ordine inversă.

13. Două liste liniare simplu înlănţuite memorează numere întregi distincte reprezentând elementele a două mulţimi. Să se genereze liste simple care
reprezintă: intersecţia, diferenţa şi reuniunea celor două mulţimi.

14. Dată fiind o listă cu elemente numere întregi, să se formeze o a doua listă care conţine elementele din lista dată o singură dată urmate de frecvenţa
lor de apariţie.

15. Să se memoreze într-o listă termenii unui polinom astfel încât fiecare componentă va memora coeficientul şi gradul unui termen al polinomului.

a. Să se afişeze Valoarea polinomului într-un punct

b. Să se determine suma a două polinoame

c. Să se determine produsul a două polinoame

16. Să se modifice conţinutul unei liste care memorează numere naturale astfel încât fiecare număr să fie înlocuit cu cel mai apropiat pătrat perfect
mai mare sau egal cu el.

Exemplu. Dacă lista memorează iniţial Valorile 5, 7, 10, 23, 25, 26 se va obţine lista: 9, 9, 16, 25, 25, 36.

17. Fie o listă simplă care reţine numere întregi. Se va genera o nouă listă simplă care va reţine elementele primei liste în ordine inversă.

Exemplu. Dacă prima lista memorează valorile: 3, 5, 4, 7, 2 a doua listă va reţine Valorile: 2, 7, 4, 5, 3.

18. Să se determine dacă două liste au acelaşi conţinut dar nu obligatoriu în aceeaşi ordine. Se va afişa Da sau NU. Listele memorează numere întregi.

Exemplu. Dacă listele memorează Valorile 4, 6, 7, 5 şi 6, 7, 4, 5 se va afişa DA.

19. Fie o listă simplă care memorează cel puţin 3 numere întregi.

a. Să se inverseze conţinutul celei de a doua componente cu penultima.

20. Să se memoreze într-o listă în ordine primii n termeni din şirul lui Fibonacci.

21. Să se determine dacă o listă memorează în ordine termeni din şirul lui Fibonacci.

22. Să se memoreze într-o listă în ordine primii n termeni ai unei progresii aritmetice pentru care se citesc valoarea primului termen şi raţia.

23. Să se determine dacă o listă memorează în ordine termenii unei progresii aritmetice.

24. Să se determine câte valori memorează cea mai lungă secvenţă ordonată Crescător dintr-0 listă de întregi.

25. Să se determine dacă oricare două valori alăturate dintr-0 listă de întregi au semne diferite. Se va afişa Da sau Nu.

26. Să se determine câte triplete de valori consecutive dintr~o listă de întregi au proprietatea ca una să fie egală cu suma celorlalte două.

27. Să se memoreze intr-o listă liniară notele celor n (n<=30) elevi dintr-o clasă la disciplina informatică. Lista va conţine numele elevilor, numărul de
note iar media se calculează.

a. Să se determine elevul/elevii cu cea mai mare medie.

b. Să se afişeze elevii cu medii cuprinse între 8 şi 1O.

c. Să se afişeze notele şi media unui elev al cărui nume se citeşte de la tastatură.


28. Să se memoreze într-o listă liniară datele celor n (115300) maşini dintr-o parcare subterană. Pentru fiecare maşină se memorează: marca, numãrul
de înmatriculare, locul de parcare (exprimat ca un număr de la 1 la n) şi numele proprietarului.

a. Să se afişeze toţi proprietarii care au maşină cu marca Ford.

b. Să se determine ce maşină are în parcare o persoană a cărei număr se citeşte de la tastatură.

c. Să se determine dacă există persoane cu mai multe maşini în parcare.

d. Să se afişeze numele proprietarilor de maşini care nu sunt din Galaţi.

II. Liste liniare simplu înlãnţuite. Inserare

29. Fie o listă liniară simplă care memorează numere întregi cu cel mult 4 cifre fiecare. Să se realizeze următoarele prelucrări:

a. Să se insereze numărul y după primă componentă care memorează Valoarea X.

b. Să se insereze numărul y după toate componentele care memorează valoarea x.

c. Să se insereze numărul y înainte de primă componentă care memorează Valoarea x.

d. Să se insereze numărul y înainte de toate componentele care memorează valoarea x.

e. Să se insereze valoarea X după cea de a n-a componentă

f Să se insereze valoarea X înainte de cea de a n-a componentă

30. Fie o listă liniară simplă care memorează numere întregi. Să se insereze după fiecare Valoare din listă dublul acesteia.

31. Fie o listă liniară simplă care memorează numere naturale. Să se insereze după fiecare valoare din listă numărul de cifre al acesteia.

32. Fie o listă liniară simplă care memorează numere întregi. Să se insereze după fiecare număr par valoarea 10.

33. Fie o listă liniară simplă care memorează numere întregi. Să se insereze intre oricare două numere suma acestora.

Exemplu. Dacă lista memorează iniţial: 5, 3, 6, 7 ulterior va memora: 5, 8, 3, 9, 6, 13, 7

34. Se citesc n numere întregi de la tastatură. Să se genereze o listă ordonată

Crescător fără a schimba ulterior ordinea valorilor componentelor.

35. Să se insereze conţinutul unei liste Ll în lista L2. Inserarea se va face după primă jumătate a listei L2.

Exemplu. Daca L1 este: 2, 4, 10, 2, 3 şi L2 este 5, 6, 7, 8 atunci L2 Va fi: 5, 6, 2, 4,10, 2, 37, 8.

36. Fie o listă care memorează datele dintr-o bibliotecă: titlul, autorul, anul apariţiei şi numărul de bucăţi. Să se insereze după fiecare carte care are un
an al apariţiei mai mic decât anul curent încă 10 bucăţi din anul curent.

III. Liste liniare simplu înlãnţuite. Ştergere

37. Fie o listă liniară simplă care memorează numere întregi

a. Să se elimine primă componentă din listă care memorează valoarea X.

b. Să se elimine din listă toate componentele care memorează valoarea X.

c. Să se elimine din listă cea de a n-a componentă

38. Fie o listă liniară simplă care memorează numere întregi. Să se elimine toate Valorile pare din listă.

39. Fie o listă liniară simplă care memorează numere întregi. Să se elimine toate Valorile neprime din listă.
40. Fie o listă liniară simplă care memorează numere întregi. Să se mute toate zerourile la începutul listei fără a modifica ordinea celorlalte valori din
listă.

Exemplu. Dacă lista conţine: 3, 4, 0, 5, O, 0, 8 se obţine: O. 0, 0, 3, 4, 5, 8.

41. Să se elimine elementele (elementul) din mijlocul unei liste simple care memorează numere întregi.

42. Să se elimine al doilea, al patrulea, al şaselea etc. element dintr-o listă simplă care memorează numere întregi.

43. Să se elimine componente dintr-o listă simplă care memorează numere întregi astfel încât oricare două valori alăturate să aibă valori distincte.

Exemplu. Dacă lista conţine: 2, 3, 3, 3, 4, 4, 3, 5, 5, 5 se obţine: 2, 3, 4, 3, 5.

44. Să se determine câte elemente memorează cea mai lungă secvenţă crescatoare de numere dintr-o listă care prelucrează numere întregi.

Exemplu. Dacă lista conţine: 5, 6, 7, 1, 2, 6, 8, 9, 1, 2 se afişează valoarea 5.

45. Să se genereze o listă simplă care memorează cea mai lungă secvenţă

crescătoare de numere dintr-o listă care prelucrează numere întregi. În cazul în care lista iniţială memorează mai multe astfel de valori se extrage una
dintre acestea.

Exemplu. Dacă lista conţine: 5, 6, 7, 1, 2, 6, 8, 9, 1, 2 atunci lista care se generează memorează valorile: 1, 2, 6, 8, 9.

46. Să se genereze o listă simplă care memorează datele elevilor dintr-o şcoală: numele elevilor, media pe anul precedent şi clasa. Să se elimine din
listă elevii din clasa a XII-a.

IV. Liste liniare simplu înlănţuite. Ordonare. Interclasare

47. Fie o listă liniară simplă care memorează numere întregi. Să se ordoneze Crescător Valorile din listă.

48. Fie două liste liniare simple care memorează numere întregi. Să se concateneze cele două liste astfel încât cea de a doua se va adăuga la sfârşitul
primei liste. Să se ordoneze Crescător valorile din lista astfel obţinută.

49. Fie o listă liniară simplă care memorează denumirile unor produse şi preţul acestora.

a. Să se ordoneze alfabetic după denumire conţinutul listei

b. Să se ordoneze descrescător după preţ conţinutul listei.

50. Fie o listă liniară simplă care memorează şiruri de caractere (litere mici şi spaţii). Un şir nu poate depăşi 100 de caractere. Să se ordoneze
descrescător lista după numărul de caractere conţinut de fiecare şir.

51. Fie două liste liniare simple care memorează numere întregi ordonate crescător. Să se genereze o a treia listă care să memoreze Valorile din cele
două liste ordonate Crescător.

52. Fie două liste liniare simple care memorează numere distincte întregi ordonate Crescător. Să se genereze o a treia listă care să memoreze valori din
cele două liste ordonate Crescător luate o singură dată.

53. Fie două liste liniare simple care memorează numere întregi ordonate crescător. Prima listă memorează numere pare iar cea de a doua memorează
numere impare. Să se genereze o a treia listă care să inemoreze valori din cele două liste ordonate Crescător astfel încât să nu existe două valori
alăturate cu aceeaşi paritate iar lista să fie ordonată Crescător.

54. Fie o listă liniară L1 care memorează numere întregi cu cel mult 9 cifre fiecare. Să se genereze lista L2 care memorează cifrele numerelor
din L1 ordonate Crescător.

S-ar putea să vă placă și