看板 C_and_CPP 關於我們 聯絡資訊
請問下面雙向鏈結用來建立鏈結的一部分 請問我該怎麼改, 才可以讓陣列可以由小到大 或是由大到小排序在雙向鏈結上面???? 請問有強者可以幫我改一下嗎??? 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; /* 傳回串列起始指標 */ } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.54.135 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1530124472.A.710.html
djshen: 幫你改一下? code完全沒有排序的部份阿 06/28 02:38
jerryh001: 想法? 06/28 07:10
b0920075: sorting不要動指標改裡面的data就好吧 06/28 07:23
b0920075: 再不然sort後再給值 06/28 07:24
sarafciel: 你有想過要怎麼解決這個問題嗎?XD 06/28 07:32
dou0228: 這完全沒有排序的部分吧? 06/28 09:18
jamfly: 你可以裝的時候排序 或是裝完以後再排序 至於排序的演算法 06/28 09:33
jamfly: 你可以估狗一下 06/28 09:33
cphe: 這是作業? 可以先了解sort有哪些,你要用哪一種sort 06/28 09:48
cphe: 用在linked list又可分為要交換node,或是交換data 06/28 09:48
cphe: 交換data比較單純,跟array差不多~ 交換node就是比細心了 06/28 09:49
Neisseria: 這板要先寫自己的版本再來討論,這樣偷渡伸手文不好 XD 06/28 10:58
tinlans: 期末還卡在這種問題上不好吧,如果是什麼考試題目的話 06/28 17:56