Sunteți pe pagina 1din 13

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei

Catedra Informatica Aplicat

RAPORT
Lucrarea de laborator nr.2-3
la Structuri de date si algoritmi

A efectuat:
st. gr. 11111 ooooooo

A verificat:
dr., conf.univ. M. Kulev

Chiinu 2016

0
Tema: Implementarea tipului de date abstract Lista simplu inlanuit in
limbajul C.

Varianta 7: Didciplina

Scopul lucrrii: obinerea deprinderilor practice de implementare i de utilizare a


unui tip de date abstract (TDA) in limbajul C i anume TDA Lista simplu
inlanuit.
Condiia problemei (sarcina de lucru) : De scris trei fiiere in limbajul C pentru
implementarea (2 fiiere) si utilizarea (1 fiier program cu functia main) pentru
TDA Lista simplu inlanuit:
1. Fiierul antet cu extensia (h) care descrie structura de date a elementului listei
simplu inlanuite (conform variantei din lucrare precedent) i prototipurile
funciilor care asigur operaiunile de prelucrare a listei simplu inlanuite.

2. Fiier cu extensia (cpp sau c) care conine codurile (implementrile) tuturor


funciilor declarate n fiierul antet.

3. Fiierul utilizatorului - programul cu funcia main () pentru prelucrarea listei


simplu inlanuite cu afiarea meniului de opiuni pe ecran si anume:

pentru lucrare de laborator 2 - crearea listei simplu inlanuite cu n elemente n


memoria dinamic, ntroducerea informaiei despre elementele listei de la tastatur,
afiarea informaiei despre elementele listei pe ecran (i a adreselor elementului
current i urmtor), cutarea elementului listei dupa unui cmp informaional,
modificarea cmpurilor elementului listei, interschimbarea a 2 elemente listei,
determinarea lungimei listei, sortarea elementelor listei dup unui cimp, eliberarea
memoriei dinamice, ieire din program;

pentru lucrare de laborator 3 - adaugarea unui element nou la sfiritul listei,


adaugarea unui element nou la nceputul listei, inserarea unui element nou n lista
dup elementul indicat, inserarea unui element nou n lista nainte elementul
indicat, stergerea unui element al listei, divizarea listei simplu inlanuite in dou
liste separate, unirea a 2 liste simlu inlanuite intr-o list, scrierea informaiei
despre elementele listei n fiier, citirea informatiei despre elementele listei din
fiier.

1
Analiza datelor
Functia: Main
a,b variabile locale de tip pointer la structura, adresa elementelor ce trebuie
interschimbate
c variabila locala de tip pointer la strucura
head_2- variabila locala de tip pointer la structura, adresa capului listei a doua
n- variabila locala de tip integer, numarul de elemente a listei simplu inlantuite
nd variabila locala de tip integer, numarul de ordine a elementului pentru stergere
nm- variabila locala de tip integer, numarul de orine a statului pentru modificare
id- variabila locala de tip integer, numarul de ordine a elementului inaintea(dupa)
caruia(care) adaugam un element nou.
l- variabila locala de tip integer, lungimea primei parti a listeisimplu inlantuite
com, com1, af- variabile locale de tip integer, optiuni pentru alegere din meniuri
fname[20]- variabile locala de tip pointer la tipul de date character,adresa unde se
pastreaza numele fisierului in care salvam datele sau de unde citim datele.
denu variabila locala de tip character, sirul de caractere introdus de la tastatura
Functia: create(int n);
n- variabila locala de tip integer, numarul de elemente a listei simplu inlantuite
c variabila locala de tip pointer la strucura
p- variabila locala de tip pointer la strucura
Functia: read() si show(disciplina *head_2);
c variabila locala de tip pointer la strucura
i-Variabila locala de tip integer, numarul de ordine a elementului in lista
head_2- variabila locala de tip pointer la structura, adresa capului listei a doua
Functia: search ( char *denu)
c variabila locala de tip pointer la strucura
denu variabila locala de tip pointer la character, adresa sirul de caractere introdus de la
tastatura
Functia: sort(void)
a,b variabile locale de tip pointer la structura, adresa elementelor ce trebuie
interschimbate pentru sortarea listei
l- variabila locala returnabila de tip integer, lungimea listei simplu inlantuite
i,k variabile locale de tip integer, indicele elementului in contor

Functia: append() si prepend()


c- variabila locala de tip pointer la structura
p- variabila locala de tip pointer la structura

Functia: delete(int nd)


nd- variabila locala de tip integer, numarul de ordine a statului care trebuie sters
c- variabila locala de tip pointer la structura
p- variabila locala de tip pointer la structura

Functia: insertbefore(int id) si insertafter(int id)


id- variabila locala de tip integer, numarul de ordine a elementului inaintea(dupa)
caruia(care) adaugam un element nou
c- variabila locala de tip pointer la structura
p- variabila locala de tip pointer la structura

2
Functia: modify(int m)
nm- variabila locala de tip integer, numarul de orine a statului pentru modificare
i-variabile locale de tip integer, indicele elementului in contor
cm,cm1- variabile locale de tip integer, optiuni pentru alegere din meniuri

Functia: swap(disciplina *a, disciplina *b)


a,b variabile locale de tip pointer la structura, adresa elementelor ce trebuie
interschimbate
na,nb- variabile locale de tip pointer la structura, adresele elementelor urmatoare a
elementelor a si b in lista simplu inlantuita.
t- variabila locala de tip pointer la structura, adresa elementului intermediar care ajuta la
interschimbarea a 2 state.

Functia: length(void)
l- variabila locala de tip integer, lungimea listei simplu inlantuite
c-variabila locala de tip pointer la structura

Functia: save( char *fname) si load( char *fname)


fname[]- variabile locala de tip pointer la tipul de date character,adresa unde se pastreaza
numele fisierului in care salvam datele sau de unde citim datele
c- variabila locala de tip pointer la structura
p- variabila locala de tip pointer la structura

Functia: freemem(void)
c- variabila locala de tip pointer la structura
p- variabila locala de tip pointer la structura

Functia: split(int l, disciplina **head_2)


l- variabila locala de tip integer, lungimea primei parti a listeisimplu inlantuite
head_2- variabila locala de tip pointer la pointer la structura, adresa variabilei in
memorie unde este salvata adresa capului listei a doua
c- variabila locala de tip pointer la structura
variabile locale de tip integer, indicele elementului in contor

Functia: join(disciplina **head_2)


head_2- variabila locala de tip pointer la pointer la structura, adresa variabilei in
memorie unde este salvata adresa capului listei a doua
c- variabila locala de tip pointer la structura

3
Codul programului:
Fisierul struc2-3.h

Fisierul functii2-3.cpp

4
5
6
7
Fisierul main.cpp

8
9
Rezultatele obtinute:
1. Compilam programul i apare meniul cu diferite obtiuni:

Adugarea informatiei: Afisarea informatiei:

Cautarea dupa denumire: Sortarea disciplinelor dup alfabet:


Disprtim lista in 2:
Modificarea unei discipline :

Concluzie
1. Am obtinut deprinderi practice de implementare a unui tip de date abstract (TDA) in
limbajul C si anume a TDA Tablou de structuri
2. Am inteles cum sa facem legatura intre aceste 3 fisiere si am inteles cum lucreaza
programul.
3. Am capata deprinderi pentru a crea structuri de date i liste inlantuite, lucru care o sa-mi
fie de folos pe viitor.
Bibliografie:
http://www.euroqual.pub.ro/cursuri/structuri-de-date-si-algoritmi/
http://ase.softmentor.ro/StructuriDeDate/Fisiere/03_ListeSimple.pdf
http://www.runceanu.ro/adrian/wp-content/cursuri/pa2014/lab4-PA(2014).pdf

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