单向链表的排序设计

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:00:31
实现内容:构建一个单向链表,能够实现根据链表中的值实现数据的正向和反向排序并读取。当然要是能附上报告的格式那就更好啦~尽快~谢谢

#include <stdio.h>
#include <stdlib.h>

typedef struct node *link;

struct node
{
int id;
link next;
};

link new_node(int id, link next)
{
link t = malloc(sizeof t);
t->id = id;
t->next = next;
return t;
}

link myinsert(int id, link head)//插入节点函数
{
link x, y, t;
t = new_node(id, NULL);
for (x = y = head; y; x = y, y = y->next)
if (y->id >= t->id)
break;
if (y == head)//在首节点位置
{
t->next = head;
head = t;
}
else //在中间位置
{
x->next = t;
t->next = y;
}
return head;
}

void myprintf(link head)
{
link x;
for (x = head; x; x = x->next)
printf("%d\n", x->id);
}
int main(void)