typedef struct nodetag node;
typedef node* pnode;
node* combine(node* p1, node* p2)
while(p1!=null && p2!=null && p1->valval)
p->next = p2;
}return head;
}node* build(int a, int n)
p->next = null;
return head;
}void printl(node* head)
printf("\n");
}node* merge(node* p1, node* p2)
else
p1 = p1->next;
}else
else
p2 = p2->next;
}if(!ishead) k = k->next;
}if(p1!=null) k->next = p1;
if(p2!=null) k->next = p2;
return head;
}int main()
, b = ;
p1 = build(a, 4);
p2 = build(b, 4);
p3 = build(a, 4);
p4 = build(b, 4);
printl(p1);
printl(p2);
head1 = combine(p1, p2);
head2 = merge(p3, p4);
printl(head1);
printl(head2);
}
合併兩個己排好序的鍊錶及陣列
唉,這麼簡單的東西,說簡單是簡單,關鍵是要把這東西寫得好,老少兼知。應對所有測試用例,那就有點難了吧。話說天下之事,作於細。我們用圖來說說吧 看合併的步驟 1 2 3 4 源 ifndef combine two list h definecombine two list h include rev...
鏈結排好序的兩個鍊錶(類似於mergeSort)
題目 給定兩個已知排好序的鍊錶,將兩鍊錶鏈結,構成的新鍊錶需要排好序 思路 從鍊錶開頭比較結點大小,若第一條煉表頭節點值不大於第二條,將第一鍊錶指標指向下乙個,若第一條鍊錶值大,將第二條鍊錶指標指向下乙個。最後將剩下未到末結點的鍊錶鏈結到新鍊錶!如下 definition for singly li...
合併兩個鍊錶
就是簡單的合併兩個鍊錶,這裡要求倆個鍊錶是有序的。比如 1 2 3 4 5 和 0 7 13 合併之後為 0 1 2 3 4 5 7 13 首先,簡單介紹一下思路,首先區遍歷倆個鍊錶,如果第乙個鍊錶的值小於等於第二個鍊錶的值,那麼將第乙個鍊錶的值插入乙個新的頭節點 鍊錶中,反之如果大於第二個鍊錶的值...