[问题] 请问双向链结如何改成由大到小排序?

楼主: hunkchen2016 (我的鸡巴女友)   2018-06-28 02:34:30
请问下面双向链结用来建立链结的一部分
请问我该怎么改, 才可以让阵列可以由小到大
或是由大到小排序在双向链结上面????
请问有强者可以帮我改一下吗???
dlink createdlist(int *array,int len)
{
dlink head; /* 双向串行的指标 */
dlink before; /* 前一节点的指标 */
dlink new_node; /* 新节点的指标 */
dlink current;
int i;
/* 建立第一个节点, 和配置节点内存 */
head = ( dlink ) malloc(sizeof(dnode));
if ( !head ) return NULL; /* 检查内存指标 */
head->data = array[0]; /* 建立节点内容 */
head->front = NULL; /* 设定指标初值 */
head->back = NULL; /* 设定指标初值 */
before = head;
current=before->front; /* 指向第一个节点 */
//int list[10] = {75,98,77,10,57,50,40,81,91,99}; /* 阵列内容 */
for ( i = 1; i < len; i++ ) /* 用循环建立其它节点 */
{ /* 配置节点内存 */
new_node = ( dlink ) malloc(sizeof(dnode));
new_node->data = array[i]; /* 建立节点内容 */
new_node->front = NULL; /* 设定指标初值 */
new_node->back = before; /* 将新节点指向前节点 */
before->front = new_node; /* 将前节点指向新节点 */
before = new_node; /* 新节点成为前节点 */
}
return head; /* 传回串行起始指标 */
}
作者: djshen (djshen)   2018-06-28 02:38:00
帮你改一下? code完全没有排序的部份阿
作者: jerryh001   2018-06-28 07:10:00
想法?
作者: b0920075 (Void)   2018-06-28 07:23:00
sorting不要动指标改里面的data就好吧再不然sort后再给值
作者: sarafciel (Cattuz)   2018-06-28 07:32:00
你有想过要怎么解决这个问题吗?XD
作者: dou0228 (7777)   2018-06-28 09:18:00
这完全没有排序的部分吧?
作者: jamfly (jamfly)   2018-06-28 09:33:00
你可以装的时候排序 或是装完以后再排序 至于排序的算法你可以估狗一下
作者: cphe (魔鬼藏在垃圾筒里)   2018-06-28 09:48:00
这是作业? 可以先了解sort有哪些,你要用哪一种sort用在linked list又可分为要交换node,或是交换data交换data比较单纯,跟array差不多~ 交换node就是比细心了
作者: Neisseria (Neisseria)   2018-06-28 10:58:00
这板要先写自己的版本再来讨论,这样偷渡伸手文不好 XD
作者: tinlans ( )   2018-06-28 17:56:00
期末还卡在这种问题上不好吧,如果是什么考试题目的话

Links booklink

Contact Us: admin [ a t ] ucptt.com