[Programacion C++] Matriz con Listas.

Hola a todos:

Resulta que estoy aciendo una practica de programacion en linux, pero tengo una gran duda y es sobre matrices y listas.

Resulta que tengo que crear esta representacion:

-Representación basada en celdas enlazadas con punteros a celdas enlazadas. La matriz m se representa como un puntero a la primera de f celdas enlazadas. Cada celda contiene un puntero a la primera de c celdas enlazadas. En este caso, son necesarios f+fxc bloques de memoria.

Tengo que definir esto mediantes estructuras asi que lo tengo asi:

struct Celda {
int valor;
Celda *sig;
};

struct Filas {
Celda *sig;
Filas *sig;
}

struct Matriz {
Filas *inicio;
int filas;
int col;
}

Pero el problema esque no se hacer una funcion para que Crear esta matriz con f filas y c columnas, y otra funcion para insertar elementos en dicha matriz.

Aver si alguien puede hecharme una mano y sobretodo enseñarme a hacer esta representacion. Muchas gracias, Saludos.
Veamos, es muy sencillo.
(Priemro hay que corregir la estructura Filas, que tiene 2 elementos con el mismo nombre, quedaria algo así).

struct Celda {
    int valor;
    Celda *sig;
};

struct Filas {
    Celda *lista;
    Filas *sig;
}

struct Matriz {
    Filas *inicio;
    int filas;
    int col;
}


Para crear la matriz, simplemente se necesitan 2 for anidados.

/* Recibimos una matriz, y el numero de filas y de columnas
    que debe de tener. */

crea_matriz(Matriz &m, int filas, int columnas) {
/* Asignamos los valores a la estructura y creamos
    la lista de listas.  */
    m.filas = filas;
    m.columnas = columnas;
    m.inicio = new Filas;   

/* Utilizamos un par de auxiliares para ir recorriendo la
    lista y enlazando las cubetas. */
    Filas *aux = m.inicio;
    Celda *aux2;
    for ( int i = 0; i < m.filas; i++) {
        aux->lista = new Celda;
        aux2 = aux->lista;
        for( int j = 0; j < m.columnas; j++) {
            aux2->sig = new Celda;
            aux2 = aux2->sig;
        }
        aux = aux->sig;
    }
}



El resto de funciones son muy parecidas a esta.

[bye]
Hola.

Muchas gracias por tu repuesta, he estado en mi pueblo y no e podido contestarte, voy a progar ahora el codigo y acondicionarlo, luego te cuento, pero de todas maneras muchisimas gracias.

Saludos.
2 respuestas