Алгоритм рекурсии, который создает целочисленную матрицу с использованием связанных списков - PullRequest
0 голосов
/ 19 июня 2020

Представление матрицы (изображение) с использованием связанных списков

Я ищу решение для создания этой матрицы с использованием рекурсии на языке 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 );
}

...