C++將兩個遞增連結串列 合併成 一個遞增連結串列 不佔用額外的空間
阿新 • • 發佈:2018-12-18
/*create by tyy*/ #include <iostream> #include <string> using namespace std; #define ok 1 #define error -1 #define overflow -2 typedef int status; typedef int ElemType; typedef struct LNode { ElemType data; LNode *next; }LNode, *LinkList; //1.將兩個遞增有序連結串列合併成一個有序的遞增連結串列,不佔用其他的空間,表中無重複資料 status mergeList(LinkList &la, LinkList &lb, LinkList &lc) { LinkList pa, pb, pc; pa = la->next; pb = lb->next; lc = pc = la; while (pa&&pb) { if (pa->data < pb->data) { pc->next = pa; pc = pa; pa = pa->next; } else if (pa->data > pb->data) { pc->next = pb; pc = pb; pb = pb->next; } else { //pa->data==pb->data pc->next = pa; pc = pa; pa = pa->next; pb = pb->next; } } pc->next = pa ? pa : pb; delete lb; return ok; }