Ciao a tutti uso Xcode,stavo provando ad implementare una lista con nodo fittizio in testa, mi sono però arenato con la funzione di insert() che non ne vuole sapere di funzionare,lanciando il main mi stampa LISTA VUOTA. Dove sbaglio? Non vorrei fosse colpa di xcode ma non credo...
main.c
codice:
#include <stdio.h>
#include "Lista.h"
int main (int argc, const char * argv[])
{
printf("Testiamo la nostra bella lista!\n");
link listatest=initialize(0);
insertNext(newNode(24), listatest);
insertNext(newNode(32), listatest);
print(listatest);
return 0;
}
lista.h
codice:
typedef int item;
struct node{
item it;
struct node* next;
};
typedef struct node node;
typedef node* link;
link initialize(int x);
link newNode(item x);
void freeNode(link x);
void insertNext(link x,link head);
link deleteNext(link x,link head);
link search(item x,link head);
int count(link head);
void print(link head);
list.c
codice:
#include <stdio.h>
#include <stdlib.h>
#include "Lista.h"
link initialize(int x){
link head=malloc(sizeof(node));
head->it=0;
head->next=NULL;
return head;
}
link newNode(item x){
link t=malloc(sizeof(node));
t->it=x; t->next=NULL;
return t;
}
void insertNext(link x,link head){
link t=head->next; //QUESTA è LA PROCEDURA INCRIMINATA
while (t!=NULL) {
t=t->next;
}t=x;
}
void print(link head){
if (head==NULL) {
printf("attenzione lista mancante");
}
if (head->next==NULL) {
printf("LISTA VUOTA");
}
link t=head->next;
while (t!=NULL) {
printf("%d ",t->it);
t=t->next;
}
}