Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "TRede.h"
- typedef struct Arco * pTArco; //ponteiro de TArco
- typedef struct No * pTNo; //ponteiro de TNo
- typedef struct Rede * pTRede; //ponteiro de TRede
- typedef struct Arco{
- int custo;
- //pTNo destino;
- int num_no_destino;
- }TArco;
- typedef struct No{
- int numero;
- int num_arcos;
- pTArco arcos;
- }TNo;
- typedef struct Rede{
- int tamanho;
- int preenchido;
- pTNo nos;
- }TRede;
- int Rede_EhVazia(pTRede rede) {
- return rede->preenchido == 0;
- }
- int Rede_Preenchida(pTRede rede) {
- return rede->preenchido == rede->tamanho;
- }
- pTRede Rede_Cria(int tamanho) {
- TRede rede;
- if (tamanho > 0) {
- rede.tamanho = tamanho;
- rede.preenchido = 0;
- rede.nos = (pTNo) malloc (sizeof(TNo) * tamanho);
- printf("Rede criada: possui tamanho %d e %d nós preenchidos.\n", rede.tamanho, rede.preenchido);
- return &rede;
- } else {
- return NULL;
- }
- }
- int Rede_ExisteNo(pTRede pRede, int numero) {
- if (!Rede_EhVazia(pRede)) {
- int i;
- for (i = 0; i < pRede->preenchido; i++) {
- if (pRede->nos[i].numero == numero) {
- return 1;
- }
- }
- }
- return 0;
- }
- int Rede_InsereNo(pTRede pRede, pTNo pNo) {
- if (!Rede_Preenchida(pRede)) {
- (*pRede).nos[pRede->preenchido] = *pNo;
- (*pRede).preenchido ++;
- printf("Inseriu.\n");
- }
- return 0;
- }
- pTNo Rede_BuscaNo(pTRede pRede, int numero) {
- if (!Rede_EhVazia(pRede)) {
- int i;
- for (i = 0; i < pRede->preenchido; i++) {
- if (pRede->nos[i].numero == numero) {
- return &pRede->nos[i];
- }
- }
- }
- return NULL;
- }
- void Rede_Imprime(pTRede pRede) {
- int i;
- printf("(%d)", (*pRede).preenchido);
- for (i=0; i<5; i++) {
- printf("-%d", i);
- //printf("Nó: %d - ", pRede->nos[i].numero);
- }
- }
- pTNo No_Cria(int numero, int num_arcos) {
- TNo no;
- no.num_arcos = num_arcos;
- no.numero = numero;
- no.arcos = (pTArco) malloc (sizeof(TArco) * num_arcos);
- return &no;
- }
- int main(int argc,char *argv[]) {
- TRede * rede;
- rede = Rede_Cria(7);
- Rede_InsereNo(rede, No_Cria(1, 2));
- printf("Possui tamanho %d e %d nós preenchidos.\n", rede->tamanho, rede->preenchido);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement