[問題] 請問雙向鏈結如何改成由大到小排序?

作者: 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