假設有兩個按數據元素值遞增有序排列的線性表A和B,均以單鏈表作為存儲結構。編寫算法將A表和B表歸并成一個按元素值遞減有序(即非遞增有序,允許值相同)排列的線性表C,并要求利用原表(及A表和B表)結點空間存放表C 最好能有程序代碼C語言,或者C++同學讓幫忙做的,但是我們還沒有學到這里來,高手們愿意試試就幫我做出來,不需要非得要按那個要求做,能夠按要求做更好,謝謝各位了!!!!!!!!!!
熱心網友
昨天晚上咨詢了一個哥們,今天凌晨上網收到他發來的郵件,貼出來給你作參考回復 回復全部 按附件按正文 轉發 刪除 永久刪除 前一封 后一封 按從小到大的順序依次把A和B的元素插入新表的頭部pc處,最后處理A或B的剩余元素。 void reverse_merge(LinkList &A,LinkList &B,LinkList &C{pa=A-next;pb=B-next;pre=NULL; //pa和pb分別指向A,B的當前元素while(pa||pb){ if(pa-datadata||!pb) { pc=pa;q=pa-next; pa-next=pre; pa=q; //將A的元素插入新表 } else { pc=pb; q=pb-next; pb-next=pre; pb=q; //將B的元素插入新表 } pre=pc;}C=A;A-next=pc; //構造新表頭}//reverse_merge 回復 回復全部 按附件按正文 轉發 刪除 永久刪除 前一封 后一封 。