Skip to content

aighita/railways

Repository files navigation

Tema 3 - Grafuri

Prezentare generală

Un program C destinat să efectueze sarcini pe structuri de date de tip graf. Programul citește datele de intrare din fișiere, procesează datele conform cerințelor specificate și scrie rezultatele într-un fișier de ieșire. Sarcinile implică operații pe grafuri, cum ar fi citirea datelor de graf, efectuarea de calcule pe graf și generarea de ieșiri bazate pe rezultatele acestor calcule.

Fișiere

  • tema3.c: Fișierul principal care execută programul.
  • include/helpers.h: Declarații ale funcțiilor de ajutor.
  • include/graph-task-1.h: Declarații pentru funcțiile legate de prima sarcină.
  • include/graph-task-2.h: Declarații pentru funcțiile legate de a doua sarcină.
  • lib/graph-task-1.c: Implementarea functiilor pentru prima sarcina.
  • lib/graph-task-2.c: Implementarea functiilor pentru a doua sarcina.
  • lib/helpers.c: Implementarea functiilor de ajutor.

Sarcini

Sarcina 1
Formatul intrării:

  • Prima linie:
    Trei valori care reprezintă R (numărul de rute), K (numărul de iterații) și L (o valoare float).
  • Urmatoarele R linii:
    Fiecare linie conține o rută cu nr. de tronsoane si gradul de uzura al acestora.

Procesare:
Citește datele grafului din fișierul de intrare. Efectuează K iterații ale funcției cerinta1 pe graf. Actualizează graful cu actualizeaza_graph. Afișează și păstrează rutele folosind afiseaza_rute și pastreaza_rute. Eliberează memoria alocată pentru rute și distruge graful.

Ieșire:
Fișierul de ieșire conține rutele procesate si cele care trebuie pastrate.

Sarcina 2
Formatul intrării:

  • Prima linie:
    Un șir de caractere care reprezintă orașul de pornire.
  • A doua linie:
    Doi întregi care reprezintă max_edges și num_edges.
  • Urmatoarele num_edges linii:
    Fiecare linie conține două șiruri de caractere (sursă și destinație) și un întreg (preț).

Procesare:
Citește datele rețelei din fișierul de intrare. Inițializează graful rețelei și adaugă conexiuni. Calculează distanțele de la orașul de pornire. Identifică și procesează muchiile critice. Ajustează numărul de muchii la max_edges. Scrie muchiile critice în fișierul de ieșire. Eliberează memoria alocată pentru rețea și structurile de date aferente.

Teste local

Cerința 1 : 36.0/45p
Cerința 2 : 50.0/50p
README : 5.0/5p
BONUS VALGRIND : 18.0/20p
Punctajul Acumulat este: 109.0/120p!

About

Graphs in C.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published