Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nu citeste primu arc;
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct TipNod {
- //Ambele sunt doar niste atribute ale nodului
- //Nu influenteaza implementarea functiilor
- int cheie;
- int info;
- } Nod;
- typedef struct TipArc {
- int idx_nod_1, idx_nod_2;
- } Arc;
- typedef struct Graf {
- int nr_noduri;
- Nod Noduri[15];
- int Arce[15][15];//matricea de adiacenta
- } Graf;
- void Initializare(Graf *g){
- g->nr_noduri = 0;
- }
- void InsertNod(Graf *g, Nod n){
- //se adauga nodul n in graf(primul nod e pe pozitia 0)
- int index_nod = g->nr_noduri;
- g->Noduri[index_nod] = n;
- g->nr_noduri++;
- //se initializeaza matricea de adiacenta pentru noul nod
- int i;
- for(i = 1; i <= g->nr_noduri; i++){
- g->Arce[index_nod][i] = g->Arce[i][index_nod] = 0;
- }
- }
- void InsertArc(Graf *g, Arc a){
- g->Arce[a.idx_nod_1][a.idx_nod_2] = g->Arce[a.idx_nod_2][a.idx_nod_1] = 1;
- }
- void SuprimaNod(Graf *g, int index_nod)
- {
- //nodul indicat este inlocuit cu ultimul nod
- int index_ultim = g->nr_noduri - 1;
- g->Noduri[index_nod] = g->Noduri[index_ultim];
- int i;
- for(i = 1; i <= g->nr_noduri; i++){
- g->Arce[i][index_nod] = g->Arce[i][index_ultim];
- g->Arce[index_nod][i] = g->Arce[index_ultim][i];
- }
- g->nr_noduri--;
- }
- void SuprimaArc(Graf *g, Arc a){
- g->Arce[a.idx_nod_1][a.idx_nod_2] = g->Arce[a.idx_nod_2][a.idx_nod_1] = 0;
- }
- void Afiseaza_Arce(Graf *g){
- int i,j;
- for(i = 1; i <= g->nr_noduri; i++){
- for(j = 1; j <= g->nr_noduri; j++)
- printf("%d ", g->Arce[i][j]);
- printf("\n");
- }
- }
- Graf *g;
- int main()
- {
- g=(Graf*)malloc(sizeof(Graf));
- Initializare(g);
- int N; //nr de noduri
- int M; //nr de arce
- scanf("%d",&N);
- scanf("%d",&M);
- /* for(int i=0;i<N;i++){
- scanf("%d",&c);
- Nod d;
- d.cheie=i;
- InsertNod(g,d);
- }
- */
- int a,b;
- Arc ar;
- for(int i=1;i<=M;i++){
- scanf("%d",&a);
- Nod c;
- c.cheie=a;
- InsertNod(g,c);
- scanf("%d",&b);
- Nod d;
- d.cheie=b;
- InsertNod(g,d);
- ar.idx_nod_1=a;
- ar.idx_nod_2=b;
- InsertArc(g,ar);
- }
- Afiseaza_Arce(g);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement