Stive
Cozi
Cozi cu liste (inserare la final, stergere de la inceput):
MAXIM ~3 STUDENTI PER GRUPA LA ACEEASI TEMA
🙂 Sortati o lista folosind selectia minimului.
Se poate implementa in mai multe feluri, de exemplu:
La fiecare pas caut minimul, il extrag din lista si il inserez in alta lista.
🙂 Implementati polinoame rare (reprezentate prin perechea coeficient, exponent) folosind o lista.
Este o lista rara ordonata dupa exponent (presupunem ca se citesc in ordine exponentii, nu sortam).
Exemplu: 7x^123 + 8x^22 + 15 ar putea fi (0,15)->(22,8)->(123,7)
Calculati suma a doua polinoame prin interclasarea listelor ce retin termenii.
🙂 Creati o lista dublu inlantuita (cu pointeri prev, next) cu doua operatii insert si extract care insereaza sau sterg aceeasi cheie (cu semn schimbat) la ambele capete de fiecare data: insert 1,2,3: ... -3 -2 -1 1 2 3 ...
🙂 Implementati o coada de prioritati in care cheile sunt perechi (valoare, prioritate). Coada trebuie mentinuta sortata dupa prioritate. Implementati insertia si extragerea. (Pentru a insera se parcurge lista pana la pozitia pe care trebuie inserat elementul in asa fel incat lista sa fie sortata) Elementele cu aceeasi prioritate sunt extrase in ordinea in care au venit.
🙂 Algoritmul lui Josephus implementat cu o lista circulara simplu inlantuita.
Se initializeaza o lista cu valorile de la 1 la n, se extrag elemente din k in k si se afiseaza ordinea extragerilor pana cand ramane unul. Sa se determine elementul ramas la final in lista.
🙂🔨👑 (Vector dinamic) Implementati un vector dinamic ca fiind o lista de vectori mai mici de dimensiune fixata k (de exemplu k=20). Fiecare nod de lista contine un tablou de k intregi. Vrem sa avem operatie pentru updatat o pozitie v[123] = 15; Pentru k=20 se aloca 7 noduri si in al 7 lea nod pe pozitia a patra scriem 15. In rest in vectorii mici se gasesc zerouri daca nu am facut update. Implementati suma a doi astfel de vectori.
🙂🔨👑 Spunem ca o imagine digitala binară M este o matrice de m x m elemente (pixeli) 0 sau 1. Un element a al matricei este adiacent cu b, daca b se afla deasupra, la dreapta, dedesubtul, sau la stanga lui a in imaginea M.
Spunem ca doi pixeli 1 adiacenti apartin aceleiasi componente. Problema va cere sa etichetati pixelii imaginii astfel incat doi pixeli primesc aceeasi eticheta daca si numai daca apartin aceleiasi componente.
Folositi o stivă sau o pereche de stive ca să introduceți coordonatele i și j ale primei apariții de 1. După care, câtă vreme sitva nu e vidă scoateți coordonatele, colorați și puneți toți vecinii care au 1 în coadă. Repetare pentru fiecare 1 rămas în matrice.
🙂🔨👑 Probleme pentru smecheri:
A. (3p) Rezolvati problema 7 cu păduri de multimi disjuncte (disjoint set forest - sau structura union-find), structura descrisa in Cormen. Explicatii in laborator.
B. (3p) Implementati Skip list. Explicatii pe wikipedia.
CD) Implementati Matrice rara.
C. (3p) Implementati Suma pe matrici rare.
D. (4p) Implementati Produs pe matrici rare.