Δημοσιεύτηκε: 20 Ιούλ 2011, 02:48
από Star_Light
migf1 έγραψε:Μια χαρά!

Το head δεν χρειάζεται να το κάνεις calloc( ) στην main γιατί η list_prepend() είναι φτιαγμένη να κάνει calloc() μέσα της, οπότε αρκεί απευθείας ένα list_prepend( &list, 1) για να δημιουργηθεί ο 1ος κόμβος της λίστας με την τιμή 1. Υποθέτω το έκανες έτσι απλά για δοκιμαστικούς λόγους, ε;


Βασικα εκανα αυτο που μου λες... αλλα βγαζει μονο το 2 :S

Οχι δηλαδη το 2 1 . (Οπως σε εσενα που πηγαινε 62 52)

Κώδικας: Επιλογή όλων

/*==========================================================
YLOPOIHSH LISTAS ME SUNARTHSEIS

5/7/11

==========================================================
*/
#include<stdio.h>
#include<stdlib.h>

typedef struct customer /*xreiazetai kai i leksi customer wste na kserei mesa sto swma
tou se ti tupo anaferetai o deiktis next */
{
int id;
struct customer *next;
} Customer;

void list_print(Customer *head);
void list_prepend(Customer **head , int id);

int main ()
{
Customer *head ,*newnode;

head = NULL;
newnode=NULL;

/*{
head= calloc(1,sizeof(Customer));
head->id=1;
head->next = NULL;
} */

list_prepend(&head,1);
list_print(head);

free(newnode);
free(head);

return 0;
}
void list_prepend(Customer **head , int id)
{
Customer *newnode= calloc(1,sizeof(Customer));
if(!newnode)
return;

newnode->id=2;
newnode->next=(*head);
(*head)=newnode;
return;
}


void list_print(Customer *head)
{
while(head)
{
printf("%d \n",head->id);
head=head->next;
}
putchar('\n');
return;
}


οσο για αυτο που ρωτησες ε ναι... τα διαβαζω προσεκτικα πρωτα και μετα προσπαθω να τα κανω εξασκηση...

ουτως η αλλως τον κωδικα τον εχω ετοιμο απο τοτε που πρωτοξεκινουσαμε με τις λιστες ;)