Δημοσιεύτηκε: 20 Ιούλ 2011, 02:48
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;
}
οσο για αυτο που ρωτησες ε ναι... τα διαβαζω προσεκτικα πρωτα και μετα προσπαθω να τα κανω εξασκηση...
ουτως η αλλως τον κωδικα τον εχω ετοιμο απο τοτε που πρωτοξεκινουσαμε με τις λιστες