このコードの何が問題になっているのか教えてください。最初にいくつかのノードを追加してから表示し、さらに並べ替えを試みましたが、並べ替えられた結果が得られません...ありがとうございます:)
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct node
{
int data;
struct node *link;
};
void append(struct node **q,int num)
{
struct node *temp;
temp=malloc(sizeof(struct node));
temp->data=num;
temp->link=*q;
*q=temp;
}
void display(struct node *q)
{ struct node *temp;
temp=q;
printf("\n");
while(q!=NULL)
{
printf(" %d",q->data);
q=q->link;
}
q=temp;
}
void sort(struct node *q)
{
struct node *temp1, *temp2; int i,j,temp3;
temp1=q;
temp2=q->link;
for(i=0;i<6;i++)
{
for(j=0;j<6-i;j++)
{
if(temp1->data>temp2->data)
{
temp3=temp1->data;
temp1->data=temp2->data;
temp2->data=temp3;
}
temp2=temp2->link;
}
temp1=temp1->link;
temp2=temp1->link;
}
}
void main()
{
struct node *p;
p=NULL;
append(&p,7);
append(&p,5);
append(&p,9);
append(&p,2);
append(&p,8);
display(p);
sort(p);
display(p);
}