Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<stdio.h>
- #define rig 3
- #define col 3
- struct nodo {
- int data;
- struct nodo *next;
- };
- typedef struct nodo Nodo;
- int **alloca_matrice(int righe, int colonne);
- void stampa(Nodo **head,Nodo *nuovo,int i , int j);
- void lista_Matrice(Nodo **head,int **A,int r,int c);
- int main(){
- Nodo *head =NULL;
- int **A = alloca_matrice(rig,col);
- lista_Matrice(&head,A,rig,col);
- return 0;
- }
- int **alloca_matrice(int righe,int colonne){
- int **A = (int**)malloc(sizeof(int*)*righe);
- int i,j;
- for(i=0;i<colonne;i++){
- A[i]= malloc(sizeof(int)*colonne);
- }
- for(i=0;i<rig;i++){
- for (j = 0; j < col; j++)
- {
- printf("inserisci valore in [%d,%d]=", i,j);
- scanf("%d\n\n",&A[i][j]);
- }
- }
- return A;
- }
- void lista_Matrice(Nodo **head,int **A,int r,int c){
- Nodo *nuovo=malloc(sizeof(Nodo)); //alloco dinamicamente nuovo che punta al tipo di dato Nodo
- Nodo *corrente;
- int i,j;
- for ( i = 0; i < r; i++)
- {
- for (j = 0; j < c; j++)
- {
- if (A[i][j] != 0)
- {
- corrente = *head;
- nuovo->data = A[i][j];
- if (corrente== NULL) //inserimento in testa
- {
- nuovo->next= *head;
- *head = nuovo;
- return;
- }
- else
- {
- while(corrente !=NULL)
- {
- corrente =corrente->next;
- nuovo->next = corrente->next;
- corrente->next = nuovo;
- }
- }
- }
- }
- }
- stampa(head,&nuovo,i,j);
- }
- void stampa(Nodo **head,Nodo *nuovo,int i,int j){
- Nodo *n;
- n=*head;
- while(n!= NULL){
- printf("%d,%d,%d--->",nuovo->data,i,j);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement