Sunteți pe pagina 1din 2

Structuri de Date (1CC)

L A B O R A T O R

1a

Functii recursive
1. Functie recursiva pentru cautarea primei aparitii a unei valori date "b"
intr-un vector "a" de n elemente cu rezultat pointer: adresa valorii gasite
sau
NULL daca nu exista.
int* first (int b, int a[], int n);
2. Functie recursiva echivalenta cu functia de biblioteca "strchr":
char* strchr (char* s, char c);
Indicatie: Se cauta prima aparitie a lui "c" in sirul (vectorul) "s".
3. Functie recursiva pentru determinarea celui mai mare divizor comun
a doi intregi "a" si "b" pe baza relatiei de recurenta:
cmmdc(a,b) = cmmdc (b, a%b) pentru b > 0
Sa se adauge apoi afisarea argumentelor la fiecare apel al functiei.
4. Functie recursiva, de tip "long", pentru calculul combinarilor de
"n" luate cate "k" folosind relatia de recurenta :
C(n,k) =1 pentru n=k sau k=0
C(n,k) = C(n,k-1) * (n-k+1)/k
ptr k > 0 si k < n
Sa se adauge apoi numararea apelurilor functiei si afisarea lor in
"main", fara a folosi variabile externe functiilor (cu un parametru in plus).
5. Functie recursiva, de tip "long", pentru calculul combinarilor de
"n" luate cate "k" folosind relatia de recurenta :
C(n,k) =1 pentru n=k sau k=0
C(n,k) = C(n-1,k) + C(n-1,k-1) ptr k > 0 si k < n
Sa se adauge apoi numararea apelurilor functiei si afisarea lor in "main".
6. Functie pentru cautarea binara a unei valori date "b" intr-un vector
ordonat
"a" de n elemente distincte cu rezultat intreg: pozitia lui "b" in "a" sau -1
daca
"a" nu contine pe "b":
int bsearch (int b, int a[], int n);
Se va apela o functie recursiva de cautare binara cu 4 argumente:
int bs (int b, int a[], int inf, int sup);
"inf","sup" sunt prima si ultima pozitie dintr-un subvector din 'a' unde se
cauta 'b'
7. Functie recursiva pentru calculul valorii unui polinom cu n coeficienti
P(n)=c[0]*x^(n-1)+c[1]*x^(n-2)+...+c[n-2]*x+c[n-1] pentru o valoare data x:
int valpol( int c[], int n, int x) ;
Se va folosi relatia de recurenta:
P(n) = P(n-1)*x + c[n-1] ptr n>0
si P(0)=0

8. Functie recursiva echivalenta cu functia standard "atoi" dupa modelul


functiei "valpol":
int atoin(char*s, int n);

// n=lungime sir s

Indicatie: Se va folosi aceeasi metoda de calcul din functia "valpol" deoarece


1234 = 1*10^3 + 2*10^2 + 3*10^1 = 4*10^0 deci P(4) cu x=10
9. Functie recursiva echivalenta cu functia standard "atoi" care sa apeleze
o varianta a functiei "valpol" (modificata astfel ca rezultatul sa fie
corect).
int atoir (char*s); // conversie din sir ASCII in "int"
10. Functie recursiva pentru afisare unui sir in ordine inversa:
void rprint (char* s);
Functie recursiva pentru crearea unui sir t cu caractereledin s in
ordine
inversa:
void reverse (char*s, char*t);

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

  • CONTABILITATE Baze PDF
    CONTABILITATE Baze PDF
    Document20 pagini
    CONTABILITATE Baze PDF
    Leslie Nelson
    Încă nu există evaluări
  • Nik
    Nik
    Document1 pagină
    Nik
    Leslie Nelson
    Încă nu există evaluări
  • 20.lab Intro 2c+
    20.lab Intro 2c+
    Document5 pagini
    20.lab Intro 2c+
    Leslie Nelson
    Încă nu există evaluări
  • Curs Online LBSTR Ro PDF
    Curs Online LBSTR Ro PDF
    Document12 pagini
    Curs Online LBSTR Ro PDF
    Sirghii Fiodor
    Încă nu există evaluări
  • Nikul
    Nikul
    Document1 pagină
    Nikul
    Leslie Nelson
    Încă nu există evaluări
  • Contabilitate Baze
    Contabilitate Baze
    Document74 pagini
    Contabilitate Baze
    Leslie Nelson
    Încă nu există evaluări
  • Curs Online LBSTR Ro PDF
    Curs Online LBSTR Ro PDF
    Document12 pagini
    Curs Online LBSTR Ro PDF
    Sirghii Fiodor
    Încă nu există evaluări
  • Seminar 11
    Seminar 11
    Document14 pagini
    Seminar 11
    Leslie Nelson
    Încă nu există evaluări
  • Teste de Fizica 2012
    Teste de Fizica 2012
    Document6 pagini
    Teste de Fizica 2012
    Alex
    Încă nu există evaluări
  • Seminar 11
    Seminar 11
    Document14 pagini
    Seminar 11
    Leslie Nelson
    Încă nu există evaluări
  • Curs8 MC
    Curs8 MC
    Document22 pagini
    Curs8 MC
    Ervin Kovacs
    Încă nu există evaluări
  • Seminar 4
    Seminar 4
    Document5 pagini
    Seminar 4
    Leslie Nelson
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document7 pagini
    Curs 1
    Dragos Cristescu
    Încă nu există evaluări
  • Schem
    Schem
    Document1 pagină
    Schem
    Leslie Nelson
    Încă nu există evaluări
  • Curs 8
    Curs 8
    Document16 pagini
    Curs 8
    Asavei Gianina
    Încă nu există evaluări
  • Sanse
    Sanse
    Document1 pagină
    Sanse
    Leslie Nelson
    Încă nu există evaluări
  • Sanse
    Sanse
    Document1 pagină
    Sanse
    Leslie Nelson
    Încă nu există evaluări
  • B Trees
    B Trees
    Document10 pagini
    B Trees
    Leslie Nelson
    Încă nu există evaluări
  • Cuprins 2
    Cuprins 2
    Document2 pagini
    Cuprins 2
    flowptz
    Încă nu există evaluări
  • S4-Aproximari Polinomiale
    S4-Aproximari Polinomiale
    Document10 pagini
    S4-Aproximari Polinomiale
    Leslie Nelson
    Încă nu există evaluări
  • Introduce Re
    Introduce Re
    Document1 pagină
    Introduce Re
    flowptz
    Încă nu există evaluări
  • S4-Aproximari Polinomiale
    S4-Aproximari Polinomiale
    Document10 pagini
    S4-Aproximari Polinomiale
    Leslie Nelson
    Încă nu există evaluări
  • Capitolul 2
    Capitolul 2
    Document19 pagini
    Capitolul 2
    flowptz
    Încă nu există evaluări
  • L13 B
    L13 B
    Document3 pagini
    L13 B
    Leslie Nelson
    Încă nu există evaluări
  • L12 B
    L12 B
    Document4 pagini
    L12 B
    Leslie Nelson
    Încă nu există evaluări
  • L13 A
    L13 A
    Document3 pagini
    L13 A
    Leslie Nelson
    Încă nu există evaluări
  • L13 B
    L13 B
    Document3 pagini
    L13 B
    Leslie Nelson
    Încă nu există evaluări
  • L13 A
    L13 A
    Document3 pagini
    L13 A
    Leslie Nelson
    Încă nu există evaluări
  • L10 B
    L10 B
    Document3 pagini
    L10 B
    Leslie Nelson
    Încă nu există evaluări