Δημοσιεύτηκε: 19 Ιούλ 2011, 21:44
Συγκεκριμενα προσπαθω να εισαγω ενα στοιχειο στην αρχη της λιστας που πλεον δεν ειναι κενη... αλγοριθμικα εχω καταλαβει απολυτα αυτα που μας εχεις πει αλλα παλι στον κωδικα κατι θα συμβαινει γιατι μου παραγει λογικο λαθος... αντι για 2 1 δηλαδη που ηθελα να βγαλει βγαζει 2 2 1 2
EDIT: ΕΒγαλα το
οποτε τωρα καπως καλυτερα απλα μου βγαζει 2 2 1 (το πλεονασματικο 2 πρεπει να καταλαβω για ποιο λογο βγαινει)
- Κώδικας: Επιλογή όλων
/*==========================================================
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;
int i;
head = NULL;
newnode=NULL;
{
head= calloc(1,sizeof(Customer));
head->id=1;
head->next = NULL;
}
newnode= calloc(1,sizeof(Customer));
newnode->id=2;
newnode->next=NULL;
head->next=newnode;
/*while(head)
{
printf("%d \n\n", head->id);
head=head->next;
}*/
list_prepend(&head,1);
list_prepend(&head,2);
for(i=0; i<1; i++)
{
printf("\n");
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;
}
EDIT: ΕΒγαλα το
- Κώδικας: Επιλογή όλων
/*newnode= calloc(1,sizeof(Customer));
newnode->id=2;
newnode->next=NULL;
head->next=newnode; */
οποτε τωρα καπως καλυτερα απλα μου βγαζει 2 2 1 (το πλεονασματικο 2 πρεπει να καταλαβω για ποιο λογο βγαινει)