Мне нужно вставить узел в последнюю позицию связанного списка. Это то, что я придумал:Вставьте узел в последнюю позицию в LinkedList
#include<stdio.h>
#include<stdlib.h>
struct node { float data;
struct node * next;
};
struct node* makenode(float item){
struct node* p=(struct node*)malloc(sizeof (struct node));
if(p) p->data = item;
return p;
}
void init (struct node **p){
*p=0;
}
int addlast(struct node **ptr, float item){
struct node* p=makenode(item);
if(!p) return 0;
struct node* temp=*ptr;
while(temp->next)temp = temp->next;
p->next=0;
temp->next=p;
return 1;
}
float delfirst(struct node **ptr){
struct node* p =*ptr;
*ptr=(*ptr)->next;
float temp=p->data;
free(p);
return temp;
}
void main(){
struct node *list,*list2;
init (&list);
int i;
for(i=0;i<10;i++)addlast(&list,i);
while(list)printf("%4.2f\t",delfirst(&list));
getchar();
}
но когда я компилирую мой код, его постоянно получаю разбился, и ошибка в функции addlast
. но я не могу найти, где я ошибся. Может кто-нибудь, пожалуйста, скажите мне, где я ошибся в функции addlast
?
Большое спасибо за указание на то, что – Mike