给定程序中,函数fun的功能是将带头节点的单向链表节点数据中的数据从小到大排序,即若原链表节点数据从头至尾的数据为:10、4、8、6,排序后链表节点数据从头至尾的数据为:2,、4、6、8、10.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 6
typedef struct node
{
int data;
struct node *next;
}NODE;
void fun(NODE *h)
{
NODE *p, *q;
int t;
p = h->next;
while (p)
{
q = p->next;
while (q)
{
if (p->data > q->data)
{
t = p->data;
p->data = q->data;
q->data = t;
}
q = q->next;
}
p = p->next;
}
}
NODE *creatlist(int a[])
{
NODE *h, *p, *q;
int i;
h = (NODE *)malloc(sizeof(NODE));
h->next = NULL;
p = NULL;
for (i = 0;i < N;i++)
{
q = (NODE*)malloc(sizeof(NODE));
q->data = a[i];
q->next = NULL;
if (h->next == NULL)
h->next = p = q;
else
{