您的位置:首页 > 其它

链表的排序

2012-07-31 21:01 169 查看
struct node heada, headb;

link t, u, x, a = &heada, b;

//a标示链表的首节点,是一个哑节点,item为空

for(i = 0; t = a; i < N ; i++){

//为后面一个节点分配空间

t->next = malloc(sizeof *t);

//t移动,并指向最后一个节点

t = t->next;

//有效节点的后面一个节点设置为空

t->next = NULL;

//随机生成1000之内的整数

t->item = rand()%1000;

}

//排序

b = &headb; b->next = NULL;

for(t = a->next; t !=NULL; t = u){

//每迭代一次,t指向下一个节点

u = t->next;

//遍历链表b,将其中的值与t->item比较

for(x = b; x->next != NULL; x = x->next)

//如果x的值比较大,则终止遍历,进行插入

if(x->next->item > t->item) break;

//元素的插入

t->next = x->next;

x->next = t;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: