Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- link a = malloc( sizeof (struct nodo));
- a->w = w;
- a->proximo = proximo;
- return a;
- if(orientado==1)
- {
- if ( v==w )
- {
- printf("Nao e possivel adicionar laçon");
- return;
- }
- if( w > G->V )
- {
- printf("Nao e possivel adicionar, este verticce nao existen");
- return;
- }
- //conto quantas arestas ja foram adicionadas e verifico se existe aresta paralela e também laço
- for (a = G->adj[v]; a != NULL; a = a->proximo)
- {
- qtda=qtda+1;
- if ( v==w || a->w == v )
- {
- printf("Nao e possivel adicionar aresta paralelan");
- return;
- }
- }
- //verifico se ira adicionar uma aresta desde que não exceda a quantidade limite estabelecida
- if( G->A > qtda)
- {
- printf("v = %dn",v);
- G->adj[v] = Novonodo( w, G->adj[v]);
- }
- else printf("Nao e possivel adicionar mais arestas ao vertice|%d|n", v);
- }
- else
- {
- printf("passoun");
- //verifico se ira adicionar um laço
- if ( v==w )
- {
- printf("Nao e possivel adicionar lacon");
- return;
- }
- if( w > G->V )
- {
- printf("Nao e possivel adicionar, este verticce nao existen");
- return;
- }
- //conto quantas arestas ja foram adicionadas
- for (a = G->adj[v]; a != NULL; a = a->proximo)
- {
- qtda=qtda+1;
- if(a->w==w)
- {
- printf("Nao sera possivel adicionar aresta paralelan" );
- return;
- }
- }
- //verifico se ira adicionar uma aresta desde que não exceda a quantidade limite estabelecida
- if( G->A > qtda)
- {
- //caso o grafo não seja orientado se eu tendo |v|->[w], terei também de |w|->[v]
- G->adj[v] = Novonodo( w, G->adj[v]);
- G->adj[w] = Novonodo( v, G->adj[w]);
- }
- else printf("Nao e possivel adicionar mais arestas ao vertice|%d|n", v);
- }
- link a;
- int i=1;
- while(i<=g->V)
- {
- printf("|%d|-",i);
- for(a=g->adj[i]; a!=NULL; a=a->proximo) printf("[%d,p%d]->", a->w,a->peso);
- printf("0n");
- i++;
- }
- printf("n");
- lista *novo = malloc( sizeof (lista));
- novo->v=v;
- novo->proximo = proximo;
- return novo;
- }
- //caso não encontro meu elemento retorno o própria lista
- if(atual == NULL) return q;
- //caso o anterior seja null, então apenas precisamos apontar para o próximo elemento da lista
- if(ant==NULL) q=atual->proximo;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement