sexta-feira, 30 de agosto de 2013

2013/2-AED-2013.08.29: TAD Matriz


// tad matriz

// definição da TAD
typedef int TipoChave;

struct t_matriz{
  int capacidade;
  int tamanho;
  int linha;
  int coluna;
  int numLinhas;
  int numColunas;
  TipoChave **a;
};

typedef struct t_matriz TipoMatriz;

// operações da TAD matriz

// criar uma nova matriz
void criarMatriz(TipoMatriz *m, int numLinhas, int numColunas);

void imprimirMatriz(TipoMatriz m);

void inserirMatriz(TipoMatriz *m, TipoChave c);

TipoChave obterElementoEm(TipoMatriz m, int linha, int coluna);

void obterPosicaoDe(TipoMatriz m, TipoChave c, 
    int *linha, int *coluna);
int cheiaMatriz(TipoMatriz m);

// implementacao

void criarMatriz(TipoMatriz *m, int numLinhas, int numColunas){
  int c = 0;
  m->numLinhas = numLinhas;
  m->numColunas = numColunas;
  m->capacidade = numLinhas * numColunas;
  m->tamanho = 0;
  m->linha = 0;
  m->coluna = 0;
  
  m->a = (int **) malloc(numLinhas * sizeof(int *));
  for (c = 0; c < numLinhas; c++){
    m->a[c] = (int *) malloc (numColunas * sizeof (int));
  }
  
}

void imprimirMatriz(TipoMatriz m){
  printf("Tamanho: %d\n", m.tamanho);
  printf("Capacidade: %d\n", m.capacidade);
  printf("Dimensao: %dx%d\n", m.numLinhas, m.numColunas);
  int i, j;
  for (i = 0; i < m.numLinhas; i++){
    for (j = 0; j < m.numColunas; j++){
 printf("%d ", m.a[i][j]);
}
  }
}

Nenhum comentário:

Postar um comentário