#include <stdio.h>
#include <stdlib.h>
struct node{
int sayi;
struct node* sonraki;
};
struct node* baslangic=NULL;
struct node* olustur(int sayi){
struct node* yenidugum=(struct node*)malloc(sizeof(struct node));
yenidugum->sayi=sayi;
yenidugum->sonraki=NULL;
return yenidugum;
}
void sonaekle(int sayi){
struct node* sonaeklenecek=olustur(sayi);
if(baslangic==NULL){
baslangic=sonaekle;
}
else
{
struct node* temp=baslangic;
while(temp->sonraki!=NULL){
temp=temp->sonraki;
temp->sonraki=sonaekle;
}
}
}
void yazdir(){
struct node* temp=baslangic;
while(temp!=NULL){
printf("%d =>",temp->sayi);
temp=temp->sonraki;
}
}
int main()
{
int secim, sayi;
while(1){
printf("1-Sona eleman ekle.....n");
printf("Yapmak istediginiz secimi yapin...n");
scanf("%d",&secim);
switch(secim){
case 1:
printf("Hangi elemani ekleyeceksiniz..n");
scanf("%d",&sayi);
sonaekle(sayi);
yazdir();
break;
}
}
return 0;
}
我试图做链表,但当我运行这段代码它给出的输出如下:-443987883 =>
。我错在哪里?我找不到。谢谢你的回答和你的时间。
有错别字
不是
baslangic=sonaekle;
当你将类型为void ( * )( int )
的函数指针赋值给类型为node *
的指针时,你需要写
baslangic=sonaeklenecek;
代替while loop
while(temp->sonraki!=NULL){
temp=temp->sonraki;
temp->sonraki=sonaekle;
}
你需要写
while(temp->sonraki!=NULL){
temp=temp->sonraki;
}
temp->sonraki = sonaeklenecek;