Operatii pentru tipul abstract lista
| init(lista) | creeaza o lista vida | |
| empty(lista):boolean | verifica daca lista este vida | |
| first(lista) : pozitie | returneaza prima pozitie din lista | |
| next(pozitie) : pozitie | returneaza urmatoarea pozitie, din aceeasi lista | |
| lookup(lista, element): pozitie | cauta un element in lista | |
| insertfirst(lista, element) | insereaza un element la inceputul listei | |
| insertafter(pozitie, element) | insereaza un element dupa pozitia specificata | |
| delete(lista, pozitie) | sterge elementul de la pozitia corespunzatoare din lista |
Definirea tipurilor de date pentru implementare cu pointeri a listelor
/* definirea tipului pentru informatia corespunzatoarea fiecarui nod al listei */
typedef int element;
/* fiecare nod al listei pastreaza anumite informatii (element)+ adresa urmatorului nod al listei (struct n*) */
typedef struct n {
element e;
struct n* next;
} node;
typedef node *list;
Problema 1
Intr-un fisier sunt pastrate numele unor orase, in ordinea in care au
fost ele parcurse de un grup de ciclisti.
OBSERVATII: Numele fisierului de intrare se da in linia de comanda. Se va implementa lista folosind pointeri. |
Intr-un fisier sunt pastrate numele unor noduri feroviare si ale punctelor finale ale rutelor ce pornesc din acel punct. Fisierul contine pe fiecare linie numele unui nod feroviar, urmat de ":", apoi numele localitatilor finale pentru fiecare ruta existenta din acel punct, separate prin spatii. Ex: Timisoara:Arad Jimbolia Buzias Resita Lugoj Arad:Oradea Deva Lugoj:Ilia Caransebes Deva:Cluj Alba Petrosani | |||||||
| |||||||
OBSERVATII: | |||||||
| |||||||
RECOMANDARE: rezolvati problema in mai multi pasi. | |||||||
|
Exercitii
| 1. Descrieti tipul de date stiva/ coada/ lista. | |
| 2. Pentru implementarea cu tablou/pointeri a stivei, realizati operatia de extragere/inserare a unui element din/in stiva. | |
| 3. Pentru implementarea cu tablou/pointeri a cozii, realizati operatia de inserare/extragere a unui element in/din coada. | |
| 4. Pentru implementarea cu pointeri a listei simplu/dublu inlantuite, realizati operatia de inserare a unui element in lista la inceput/ dupa un element dat. | |
| 5. Pentru implementarea cu pointeri a listei simplu/dublu inlantuite, realizati operatia de stergere a unui element. | |
OBSERVATIE: pentru implementarile de mai sus se cere si definirea tipurile de date folosite, explicatii. |