[ negative7 @ 08.05.2009. 14:13 ] @
Potrebno je preraditi ovaj program tako da se cvorovi liste n0,n1,n2,n3 deklariraju kao pokazivaci,te da se vrsi dinamicka alokacija i dealokacija njihove memorije.

Code:

struct node
{
    int data;
    struct node *next;
};
typedef struct node node;
typedef struct node* pnode;

void main()
{
    pnode head;
    node n0,n1,n2,n3;

    n0.data=50;
    n1.data=100;
    n2.data=150;
    n3.data=200;

    n0.next=&n1;
    n1.next=&n2;
    n2.next=&n3;
    n3.next=NULL;
    
    head=&n0;
    while(head!=NULL)
    {
        printf("%d\t",head->data);
        head=head->next;
    }
}


evo sto sam ja nacinio

Code:

struct node
{
    int data;
    struct node *next;
};
typedef struct node node;
typedef struct node* pnode;

void main()
{
    pnode head;
    pnode p;
    
    for(int i=0;i<4;i++)
    {
        head=(pnode)malloc(sizeof(node));
        printf("Upisi broj> ");
        scanf("%d",&head->data);
        head=head->next;
        
    }
    head=NULL;
    
    p=&head[0];  // jeli ovo isto kao p=head;
    while(p!=NULL)
    {
        printf("%d\t",p->data);
        p=p->next;
        
    }
}


Molio bih pomoc uz objasnjenje ako ne predstavljaa problem,hvala.
[ djoka_l @ 08.05.2009. 14:45 ] @
Evo gde su greške:

1. OK, nije greška, nego warning, nisi uključio potrebne hedere (<stdio.h> i <malloc.h>)
2. head treba da ti služi da pokazuje na početak liste. Razmisli šta se dešava u liniji u kojoj piše head=head->next (a da nisi prethodno dodelio vrednost članu strukture next)? Šta ti posle ove komande pokazuje na početak liste?
3. Šta se dešava u liniji head=NULL

Kada budeš odgovorio na ova pitanja, zadatak će se sam rešiti.
[ X Files @ 08.05.2009. 16:08 ] @
Pogledaj ovde:
http://www.elitesecurity.org/t154369-0#2232517
Realizovane su mnoge funkcije koje ti trebaju za rad sa jednostruko spregnutom listom.