Представление матрицы (изображение) с использованием связанных списков
Я ищу решение для создания этой матрицы с использованием рекурсии на языке c. каждый узел - это структура, содержащая целочисленное значение, указатель на следующий узел в той же строке и указатель на следующий узел в том же столбце.
Я использую этот код в c :
#include <stdio.h>
#include <stdlib.h>
typedef struct Node_elem Node;
typedef struct Node_elem {
int val;
Node* next_row;
Node* next_col;
};
//------------interface-------------
void Alocate(Node** P);//node dynamic allocation
int Value_P(Node* P);//ineger value
void Assign_val(Node* P , int val);
Node* Next_col(Node* P);// the next node in the same column
Node* Next_row(Node* P);// the next node in the same rowe
void Link_next_C(Node* P , Node* Q);// link node Q to P in the same column
void Link_next_R(Node* P , Node* Q);// link node Q to P in the same line
void Create_Mat(Node* Pr , int Row , int Col );//**** The recursive method that creates(Allocates) the matrix structure
//-----------implementation-----------
void Alocate(Node** P){
*P = (Node*) malloc(sizeof(Node));
}
int Value_P(Node* P){
return P->val ;
}
void Assign_val(Node* P , int val){
P->val = val;
}
Node* Next_col(Node* P){
return P->next_col;
}
Node* Next_row(Node* P){
return P->next_row;
}
void Link_next_C(Node* P , Node* Q){
P->next_col = Q;
}
void Link_next_R(Node* P , Node* Q){
P->next_row = Q;
}
void Create_Mat(Node* Pr , int Row , int Col ){
// i need sollution here
}
//--------------------------------
int main() {
Node* Mat_head;
Alocate(&Mat_head);
Create_Mat(Mat_head , 4 , 5 );
}