La lista entrecruzada representa una matriz escasa, y la suma, resta, multiplicación y operaciones de la matriz requieren el uso del lenguaje C.
El principio de la cadena cruzada es muy sencillo. La implementación también es relativamente simple. Aquí le doy la definición del nodo. Y puede crear una lista de enlaces cruzados usted mismo o puede echar un vistazo a lo escrito anteriormente.
Defina un tipo de datos de nodo de encabezado, implementado Simplemente defina un formación.
typedef struct node{
int vex; //Vértice
struct *node *first //Apunta al primer nodo asociado con él
>}ListNode;
Luego defina el tipo de nodo,
typedef struct node{
int vexNum; //Número de vértice
int vexData; //Datos de vértice
struct *node *next; //Apunta a otros nodos relacionados con el nodo de encabezado
}Nodo;
La suma de matrices es la suma de los elementos correspondientes, por lo que solo necesita sumar los elementos correspondientes en las dos matrices representadas por cadenas cruzadas. Específicamente, para cada vértice, busque en la tabla de encabezado y luego busque los nodos relacionados con él. Mueva el puntero hacia atrás, compare si hay dos nodos idénticos en las dos listas entrecruzadas; de ser así, agréguelos y guarde el resultado en una de las listas entrecruzadas. De lo contrario, no hay cambios. Encuentra otros vértices a su vez. Puedes obtener el resultado.
ListNode cabeza1, cabeza2
Nodo *p, *q
p=cabeza1-gt;
q=; head2-gt; primero;
mientras(!p)
{
mientras(!q)
{
if(p-gt; vexNum==q-gt; vexNum)
{
p-gt; vexData =q-gt; en la primera lista de enlaces cruzados
break; //
}
q=q-gt; >
p=p-gt; next;
}
el implemento de agregar es como lo que escribí arriba.
Y los demás son similar. Puedes hacerlo tú mismo. Confía en ti mismo.